我是炭烬新手,但模板有问题。
我的路线
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function(params) {
var pageNum = params.page || 1,
pageRows = 8;
return this.store.find('account', {
page: pageNum,
rows: pageRows
});
},
setupController: function(controller, model) {
controller.set('model', model);
controller.set('greeting', 'Hello World');
}
});
我的控制器
import Ember from 'ember';
export default Ember.ArrayController.extend({
contentLength: function() {
// console.log(this);
// console.log('length: ' + this.get('content').length);
// return this.get('content').length;
return 'Test string';
},
actions: {}
});
模板
{{ greeting }}
{{ contentLength }}
{{greeting}}正确呈现。但是{{contentLength}}被渲染为字符串函数。
Hello World function () { // console.log(this); // console.log('length: ' + this.get('content').length); // return this.get('content').length; return 'Test string'; }
谁能帮助我解决这个问题?
谢谢
您需要.property()
在contentLength
函数的末尾添加以便在模板中显示它:
import Ember from 'ember';
export default Ember.ArrayController.extend({
contentLength: function() {
// console.log(this);
// console.log('length: ' + this.get('content').length);
// return this.get('content').length;
return 'Test string';
}.property(),
actions: {}
});
如果您希望该属性在控制器的另一个属性发生更改时进行更新,则只需像这样将其添加为属性的“参数”,.property("thepropertytoobserve")
并且arrayController的length属性已经可以使用,如{{length}}
模板中所示。
请参阅文档,以获取有关计算机属性的更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句