是否可以在没有模板内交互的情况下调用控制器操作?
我想把一个数字转换成一个特定的字符串,如下所示:
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')
});