Ember / Handlebars:将应用程序控制器放入把手辅助功能中

时间:2014-01-22 23:46:51

标签: ember.js handlebars.js

如何从如此声明的把手辅助函数访问应用程序控制器(App.ApplicationController):

Ember.Handlebars.registerBoundHelper('actionButtons', function(context, options) {
    var thisUserId = context.content.get('userID');
    var thatUserId = // Somehow get the user ID from the ApplicationController model
    if (thisUserId == thatUserId) {
        // Do Something
    }
});

提前非常感谢。

1 个答案:

答案 0 :(得分:2)

您不直接访问控制器,将值从控制器传递到帮助程序。

控制器:

App.ApplicationController = Ember.ObjectController.extend({
     userId: 'foobar'
});

模板:

{{actionButtons userId}}

助手:

Ember.Handlebars.registerBoundHelper('actionButtons', function(userId, options) {
    //userId now contains the userId from your controller
});

编辑:我建议将这些信息放在像App.Global.User这样的全局变量中。但是如果真的需要函数中的控制器,你可以在容器中查找它:

var applicationController = App.__container__.lookup('controller:application');