DS.Model中的计算字段不与Ember.js中的DS.RESTAdapter一起使用

时间:2013-08-01 13:25:21

标签: ember.js

使用RestAdapter时,不显示模型的计算字段。为什么呢?

我的路线和视图如下所示:

App.MyObjRoute = Ember.Route.extend({
  model : function(params)
  {
      return App.MyObj.find(params.myobjId);
  }
});

App.MyObjView = Ember.View.extend({});

我有一个DS.Model:

App.MyObj = DS.Model.extend({
  first: DS.attr( 'string' ),
  last: DS.attr( 'string' ),
  firstlast: function()
  {
    return this.get('first') + ' ' + this.get('last');
  }.property('first', 'last')
})

固定代码:

App.Store = DS.Store.extend({
  adapter: DS.FixtureAdapter.create()
});

App.MyObj.FIXTURES = [
  { 
    id: 1, 
    first: 'Trek', 
    last: 'Bob'
  }
];

我在这样的模板中显示:

<script type="text/x-handlebars" data-template-name="myTemplate">

{{firstlast}} {{first}} {{last}}

</script>

这很有效。我显示了“Trek Bob Trek Bob”。

但是当我保留模型时:

App.MyObj = DS.Model.extend({
  first: DS.attr( 'string' ),
  last: DS.attr( 'string' ),
  firstlast: function()
  {
    return this.get('first') + ' ' + this.get('last');
  }.property('first', 'last')
})

并用这样的RestAdapter替换fixture代码:

App.Store = DS.Store.extend({
  revision: 13,
  adapter: DS.RESTAdapter.extend({url: "myApi"})
});

仅显示{{first}}{{last}},而{{firstlast}}则不会。

如何解决?

0 个答案:

没有答案