是否可以在模板内没有交互的情况下调用控制器操作?
我想将数字转换为特定字符串,如下所示:
switch (s){
case 1: return "foo";
case 2: return "bar";
// ...
}
我想在each
循环=>中执行此操作对我的模型中的项目each
,将属性s
从每个项目转换为特定字符串。
好吧,我可能会在afterModel
钩子中做到这一点 - 但我想从模板中做到这一点。
答案 0 :(得分:1)
你需要的是一个绑定帮手。这可以让你的逻辑从字符串转换为你想要显示的字符串。
请参阅文档中的Register Bound Helper。
Ember.Handlebars.registerBoundHelper('convertToMyString', function(s) {
switch (s){
case 1: return "foo";
case 2: return "bar";
// ...
}
});
在你的模板中:
{{convertToMyStringname model.s}}
答案 1 :(得分:0)
不,你正在反对这个框架,而你所发现的就是困难。
在您的控制器中进行数据处理(装饰/格式化),并从那里将数据提供给您的模板。
模板只是演示文稿,不应该在那里执行逻辑(实际上尽可能少)。
App.IndexController = Ember.Controller.extend({
processedData: function() {
return // processed data;
}.property('model')
});