Ember.js属性绑定无法正常工作

时间:2014-10-27 06:24:45

标签: javascript ember.js

我无法使用Ember.computed.alias绑定到对象的属性。以下是代码段。

代码

(function () {
  'use strict';

  var book = Em.Object.create({
    title: 'Just For Fun',
    author: Em.Object.create({
      name: 'Linus Torvalds'
    }),
    authorName: Ember.computed.alias('author.name')
  });

  // expected "Linus Torvalds", actual: dump of some object (perhaps author)
  console.log('Before author name change:', book.get('authorName'));

  book.get('author').set('name', 'Linus Torvalds & David Diamond');

  // expected "Linus Torvalds & David Diamond", actual: dump of some object (perhaps author)
  console.log('After author name change:', book.get('authorName'));

})();

我想在authorNamename更改时自动更新author

请帮助我理解我所缺少的内容。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Object.extend然后创建对象

(function () {
  'use strict';

  var Book = Em.Object.extend({
    title: 'Just For Fun',
    author: Em.Object.create({
      name: 'Linus Torvalds'
    }),
    authorName: Ember.computed.alias('author.name')
  });

  var book = Book.create();
  // expected "Linus Torvalds", actual: dump of some object (perhaps author)
  console.log('Before author name change:', book.get('authorName'));

  book.get('author').set('name', 'Linus Torvalds & David Diamond');

  // expected "Linus Torvalds & David Diamond", actual: dump of some object (perhaps author)
  console.log('After author name change:', book.get('authorName'));

})();