在没有任何交互的情况下调用操作



是否可以在没有模板内交互的情况下调用控制器操作?

我想把一个数字转换成一个特定的字符串,如下所示:

switch (s){
    case 1: return "foo";
    case 2: return "bar";
    // ...
}

我想在each循环=>each中对模型中的项执行此操作,将每个项的属性s转换为特定字符串。

我可能可以在afterModel钩子中完成这项工作,但我想从模板中完成。

您需要的是一个绑定的助手。这可以让您的逻辑从字符串转换为您想要显示的任何字符串。

请参阅文档中的注册绑定帮助程序。

Ember.Handlebars.registerBoundHelper('convertToMyString', function(s) {
    switch (s){
        case 1: return "foo";
        case 2: return "bar";
        // ...
    }
});

在您的模板中:

{{convertToMyStringname model.s}}

别这样,你正在对着框架工作,你会发现一切都很困难。

在控制器中进行数据处理(装饰/格式化),然后将数据提供给模板。

模板只是演示,不应该在那里执行任何逻辑(实际上尽可能少)。

App.IndexController = Ember.Controller.extend({
  processedData: function() {
    return // processed data;
  }.property('model')
});

最新更新