2013-03-13 81 views
0

所以,我想獲得一個簡單的propertyBinding來使用emberjs。具體來說,我有一個內容屬性的控制器,它在某些情況下需要更新,並且需要該內容數組來繪製一些圖表。propertyBinding控制器 - 查看

我已經做出了最基本的例子,它似乎並沒有工作。我的簡單例子如下:

Appname.IndexController = Ember.Controller.extend({ 
    value: 'bla' 
}); 

Appname.IndexView = Ember.View.extend({ 
    templateName: 'Index', 
    propertyBinding: 'Appname.IndexController.value', 
    didInsertElement: function() { 
     console.log('Indexview'); 
     console.log(this.get('property')); 
    } 
}); 

它就這麼簡單,它只是不起作用。真的很奇怪,如果我創建另一個測試控制器(而不是擴展它),例如

Appname.TestController = Ember.Controller.create({ 
    value: 'jpopo' 
}); 

屬性綁定突然間起作用。但我就是不能讓它與索引控制器 工作(在情況下,信息是必要的,在Applicaton.hbs我有一個插座) 感謝您的幫助

回答

1

綁定實例化的對象的工作,而不是爲對象定義。

Appname.IndexController是控制器定義,而不是實例。這不是你想要綁定的。 Ember.js應用程序將創建一個IndexController的實例,並且它是您要綁定到的創建實例:

要從其視圖訪問實際控制器實例,請使用controller

Appname.IndexView = Ember.View.extend({ 
    templateName: 'index', 
    propertyBinding: 'controller.value', 
    didInsertElement: function() { 
    console.log(this.get('property')); 
    } 
}); 

當然,那就是如果你按照Ember.js conventions

+0

對不起,尚未將其標記爲已接受的答案。剛剛嘗試過它很快,但它沒有奏效,但我沒有時間正確地查看它。儘管如此,儘快這樣做。同時,謝謝你已經把我推向了正確的方向。 – Markus 2013-03-17 16:14:47