此余烬组件模板:
<script type="text/x-handlebars" id="components/blog-post">
<h1>Component: {{title}}</h1>
<p>Lorem ipsum dolor sit amet.</p>
</script>
这是组件代码:
App.BlogPostComponent = Ember.Component.extend({
// how can i access the title property here? (this.title doesn't work)
// also this.get('title') throws error: undefined is not a function
computedProp: 'width' + this.title
});
它的用法是:
{{blog-post title=title body=body}}
我可以使用{{title}}
从组件模板轻松访问title属性。
我如何从组件代码App. BlogPostComponent
中访问title
属性。
也有一个简单的方法,余烬属性在车把,如:
编辑:
当我按照建议这样做时:
App.BlogPostComponent = Ember.Component.extend({
computedProp: function () {
return 'width' + this.get('title');
}.property('title')
});
我得到错误:
Uncaught Error: Assertion Failed: Attributes must be numbers,
strings or booleans, not function () {
return 'width:' + 50 + '%';
}
Edit2:好的,错误的原因是在函数定义末尾省略了. properties('title')
。它现在已经修复了。
this. get
应该可以正常工作,问题是您没有在对象上下文中调用它。定义计算属性的正确方法是:
App.BlogPostComponent = Ember.Component.extend({
computedProp: function () {
return 'width' + this.get('title');
}.property('title')
});
像这样的东西