如何构建Ember.js应用程序,以便从itemControllers访问应用程序状态?

时间:2014-09-02 17:45:08

标签: ember.js

我有一组模型,每个模型都在控制器上存储一些应用程序持久状态。我想在应用程序的其他位置访问此状态,但我不确定如何。

Here's a JS Bin with a stripped-down version of the app展示了我尝试做的事情:在" Boxes" route,我想显示点击小部件的数量,但是来自BoxController我不知道如何访问具有该属性的WidgetController

如果我正确理解指南,我应该能够use needs to inject one controller into another,但当我使用itemController将每个模型包装在自己的控制器中时,这并不适用实例

2 个答案:

答案 0 :(得分:1)

我会把它分成3部分......


1)将计算属性添加到包含已检查小部件的App.WidgetsController。像

这样的东西
clickedWidgets: Ember.computed.filterBy('@this', 'hasBeenClicked', true)

2)将needs: ['widgets']添加到App.BoxController


3)更改clickedWidgets的{​​{1}}计算属性,以获取App.BoxController中clickedWidgets的列表以及与该框匹配的小部件列表的过滤器。

App.WidgetsController

您可以在此处查看工作箱:http://jsbin.com/yizafe/1/edit

答案 1 :(得分:0)

这应该对您有用,是的needs:['widgets']是可行的方式:http://jsbin.com/tunuj/1/edit?html,js,output