2014-10-27 95 views
0

我無法使用Ember.computed.alias綁定到對象的屬性。以下是代碼片段。Ember.js屬性綁定不起作用

代碼

(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')); 

})(); 

我想自動更新authorName每當nameauthor變化。

請幫我理解我錯過了什麼。

+0

看起來甚至'Ember.computed.oneWay'不起作用! – codematix 2014-10-27 06:59:08

回答

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')); 

})(); 
+0

有趣!這似乎工作!但我不明白爲什麼。是不是可以創建'Ember.Object'實例並使用屬性綁定? – codematix 2014-10-27 07:03:41

+0

我不確定,我試圖尋找一個解釋,但沒有找到任何東西 – Martin 2014-10-27 07:10:54

相關問題