如何在另一个控制器 ember 中绑定应用程序控制器属性



我在ApplicationController中具有搜索属性,并且它与搜索的输入字段相关联。我想在项目控制器中访问应用程序控制器的搜索字段。它应该是同步的。我使用以下代码,但它不起作用。

/应用程序/控制器/项目

/索引.js (项目控制器)

import Ember from 'ember';
export default Ember.Controller.extend({
    needs: ['application'],
    searchBinding: 'controllers.application.search'
});
/应用程序/控制器

/应用程序.js (应用程序控制器)

  import Ember from 'ember';
    export default Ember.Controller.extend({
      search: ''
    )}

应用.hbs

{{input value = search} }

Ember 需求已被弃用,现在以不同的方式使用。

它的工作原理是这样的:

applicationController: Ember.inject.controller('application'),
mySearch: Ember.computed.alias('applicationController.search')

在你的 hbs 模板中 -

{{mySearch}}

与应用程序属性"搜索"同步。

您可以通过注入来访问控制器中的任何控制器。

import Ember from 'ember';
export default Ember.Controller.extend({
    applicationController: Ember.inject.controller('application'),
    searchProperty: Ember.computed.alias('applicationController.search'),
)};

管理 Ember 控制器之间的依赖关系

您可以

通过以下方式访问needs中包含的控制器属性:

{{controllers.neededController.property}}

在您的情况下,请尝试:

{{input value=controllers.application.search}}

请参阅此处的示例:http://jsfiddle.net/6Evrq/

最新更新