我勸isEnabled:Em.computed.alias('controller.panoEnabled')
由鄧肯·沃克提到的第二個選項,與binding
後綴屬性已'輕微'棄用(https://github.com/emberjs/ember.js/issues/1164#issuecomment-23200023)。
App.PanoView = Ember.View.extend({
classNames: ['pano'],
classNameBindings: ['isEnabled'],
/*isEnabled:function(){
return this.get('controller.panoEnabled');
}.property('controller.panoEnabled')*/
isEnabled:Em.computed.alias('controller.panoEnabled')
});
而且它是需要解決的相關代碼,谷歌地圖this
上下文如下圖所示
http://emberjs.jsbin.com/vesiyana/1/edit
....
var self = this;
google.maps.event.addListener(marker, 'click', function(){
self.set('controller.panoEnabled',true);
console.log(self.get('controller.panoEnabled')); });
google.maps.event.addListener(map, 'click', function(){
self.set('controller.panoEnabled', false);
console.log(self.get('controller.panoEnabled')); });
....
非常感謝!這絕對是那個/這個背景。我不能相信我錯過了,因爲它在Listener方法中。太棒了,不能夠感謝你...... –