将ember-data模型传递给组件并获得奇怪的结果

时间:2015-10-17 21:21:18

标签: ember.js

ember@2.1.0 
ember-data@2.1.0

我将一个简单的模型传递给一个组件但得到了以下对象(我看起来实际的ember-data模型在value属性下)。为什么模型指向这个而不是实际模型?

enter image description here

路线

export default Ember.Route.extend({

  model() {
    return this.store.createRecord('employee');
  }

})

模板

{{log model}} {{!-- logging here correctly displays the ember-data object --}}
{{my-component model=model}}

我也试过这个:

<my-component model={{model}} /> <!-- which prints the folowing in HTML <model-editor model="<dummy@model:employee::ember395:null>"></model-editor>-->

组件(我的组件)

export default Ember.Component.extend({
  layout,

  didReceiveAttrs() {
    console.log(this.attrs.model); //Prints the Object above
  }

});

1 个答案:

答案 0 :(得分:1)

您可以使用this.get('model')代替this.attrs.model来获得您期望的行为。

但是,如果您希望继续使用this.attrs.model,则需要明确引用this.attrs.model.value以获取model属性值。

这是因为model属性与value一起传递,并且更新它的方式 - update功能。

这个概念与mut助手类似。 You can read more about this behavior here.