4

我在 ApplicationController 中有搜索属性,它与搜索的输入字段相关联。我想访问 ProjectController 中 ApplicationController 的搜索字段。它应该是同步的。我使用以下代码,但它不起作用。

/app/controllers/projects/index.js(项目控制器)

import Ember from 'ember';
export default Ember.Controller.extend({
    needs: ['application'],
    searchBinding: 'controllers.application.search'
});

/app/controllers/application.js(应用控制器)

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

应用程序.hbs

{{input value = search}}

4

3 回答 3

15

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

它是这样工作的:

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

在您的 hbs 模板中 -

{{mySearch}}

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

于 2016-05-20T11:00:42.290 回答
6

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

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

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

于 2016-05-20T11:02:15.973 回答
1

needs您可以通过这种方式访问​​包含的控制器属性:

{{controllers.neededController.property}}

在你的情况下尝试:

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

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

于 2016-05-20T08:11:26.770 回答