我在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/