3

私はDS.belongsToこのような関係の属性をバインドしようとしています:

App.User = DS.Model.extend({
  name: DS.attr('string')
});

App.Post = DS.Model.extend({
  text: DS.attr('string'),
  user: DS.belongsTo('App.User'),

  userNameBinding: 'user.name'
});

この例は少しばかげていることは知っていますが、アイデアはここにあります。

残念ながら、それは機能しません(model.jsのこの行で):

Uncaught TypeError:nullのメソッド'send'を呼び出すことができません

私も使ってみましEmber.Binding.oneWayたが、うまくいきません。私の現在の回避策はかなり醜いです:

App.Post = DS.Model.extend({
  // code omitted

  userName: function() {
    return this.get('user.name');
  }.property('user.name')
});

このJSFiddleでテストできます。

使用した残り火バージョン:

4

1 に答える 1

4

で設定された状態に依存するプロパティへのバインドにバグがあるようinitです。Ember issue tracker にバグを報告しました。

見苦しくない解決策として、次を使用できますEmber.computed.alias

App.Post = DS.Model.extend({
  text: DS.attr('string'),
  user: DS.belongsTo('App.User'),

  userName: Ember.computed.alias('user.name')
});

この JSBinに実例があります。

于 2013-01-16T16:28:32.977 に答える