2012-11-23 35 views
1

我的問題是使用canJS Observable我不能在對象鍵中使用點,因爲可以認爲這裏有一些嵌套。CanJS可觀察的和鍵中的點

所以我們可以說,如果我創建新觀察到的:

var obs = new can.Observe({ "div.test-class": { "color": "#000000;" } }); 

可以失敗,消息

can.Observe: Object does not exist 

而且使用我不能創建觀察到的只是

var obs = new can.Observe({ ".test-class": { "color": "#000000;" } }); 

,因爲現在可以失敗,並顯示以下錯誤:

TypeError: current._set is not a function 

創建觀察到的使用下面的代碼

var obs = new can.Observe({ "div": {}, "div.test-class": { "color": "#000000;" } }); 

作品完美,但我並不需要嵌套,並且可以嘗試巢test-classdiv的內部觀察。

那麼,任何想法如何我可以實現我所需要的?

回答

2

這實際上是一個錯誤and has been fixed in version 1.1.5。現在的一般規則是:

var obs = new can.Observe({ "div": {}, "div.test-class": { "color": "#000000;" } }); 

將創建你期望的觀察。傳遞一個對象.attr

obs.attr({ 'my.test': 'testing' }); 

還將設置my.test作爲屬性。通過它像一個setter像

obs.attr('my.test', 'testing'); 

將設置{ my: { test: 'testing' } }