Ember.js 在Ember中更新特定模型值的UI
如何迭代每个模型值并基于该值更新把手UI。 我正在使用ArrayController。基本上,对于模型中的特定值,我希望更改其显示方式 我不确定上面的代码有什么错误。但它并没有按要求发挥作用Ember.js 在Ember中更新特定模型值的UI,ember.js,Ember.js,如何迭代每个模型值并基于该值更新把手UI。 我正在使用ArrayController。基本上,对于模型中的特定值,我希望更改其显示方式 我不确定上面的代码有什么错误。但它并没有按要求发挥作用 App.SomeStat = Ember.Object.extend({ target: null, starts: null } {{#each stat in controller}} {{#if isRestricted}} Do something.. {{/if
App.SomeStat = Ember.Object.extend({
target: null,
starts: null
}
{{#each stat in controller}}
{{#if isRestricted}} Do something..
{{/if}}
{{/each}}
App.SomestatController = Ember.ArrayController.extend({
isRestricted: function () {
this.forEach(function(target) {
var t= target.get('target');
return t >= MAGIC_NUMBER;
});
}.property('model.@each.target'),
});
试试这个:
App.CensusStat = Ember.Object.extend({
targetPc: null,
starts: null,
isRestricted: function () {
var offTarget = this.get('targetPc');
return (offTarget &&
(Math.abs(offTarget) >=
Ember.I18n.t('ps.label.census.offtarget.restricted.percentage')));
}.property('targetPc')
});
您应该将ArrayController
itemController
属性设置为ObjectController,该属性扩展每个数组内容的内容
App.ExtendIndexController = Ember.ObjectController.extend({
isRestricted: Em.computed(function () {
return this.get('name') === 'red';
}).property('name')
});
App.IndexController = Ember.ArrayController.extend({
itemController: 'extendIndex'
});
然后,您可以在迭代控制器时访问模板中添加的属性:
{{#each controller}}
<li>{{name}} ({{isRestricted}})</li>
{{/each}}
{{#每个控制器}
{{name}}({{isRestricted}})
{{/每个}}
此案例记录在中,但我认为,此特定案例也应记录。isRestricted应记录在controller中,我不想将其放在模型中。这很好,这很容易,但很难理解