提问者:小点点

如何将参数传递给余烬组件


此余烬组件模板:

<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')。它现在已经修复了。


共1个答案

匿名用户

this. get应该可以正常工作,问题是您没有在对象上下文中调用它。定义计算属性的正确方法是:

App.BlogPostComponent = Ember.Component.extend({
  computedProp: function () {
    return 'width' + this.get('title');
  }.property('title')
});

这样的东西