Ember.js中可以使用訂閱者/觀察者模式嗎?例如,視圖A和視圖B都偵聽模型C中的更改。這要求模型C能夠觸發自定義事件。我一直在試圖弄清楚如何在Ember.js中創建一個模型觸發器事件,但目前爲止沒有運氣。Ember.js中的訂閱者/觀察者模式
1
A
回答
0
至少在Sproutcore中,這是綁定的目的。
如果你有一個模型
App.Person = SC.Object.extend({
name: 'Bruce Banner'
});
你會再有一個控制器,如
App.personController = SC.ObjectController.create();
然後,您可以設置控制器
App.personController.set('content', somePerson);
現在,任何訴iew可以綁定到模型對象上的數據。
SC.LabelView = SC.LabelView.extend({
...
valueBinding: 'App.personController.name'
})
所以,如果你曾經更改名稱
somePerson.set('name', 'Chris');
視圖將自動更新。
3
我相信你正在尋找的功能在Ember.js中被稱爲「綁定」。
有噸的描述如何做你的建議是什麼,但在這裏,在主頁上的例子是一個快速回顧:
window.MyApp = Ember.Application.create();
MyApp.MyModel = Ember.Object.create({
myProperty: "Hello World!",
goodbye: function() {
this.set("myProperty", "Goodbye!");
})
});
MyApp.modelInstance = MyApp.MyModel.create();
現在創建您的<body>
標籤內的兩種觀點:
<script type="text/x-handlebars">
View1: <b>{{MyApp.modelInstance.myProperty}}</b>
</script>
<script type="text/x-handlebars">
View2: <b>{{MyApp.modelInstance.myProperty}}</b>
</script>
現在頁面應該呈現,你會看到兩個視圖都會顯示「Hello World!」。打開控制檯並鍵入
MyApp.modelInstance.goodbye();
然後你會看到你的意見改變說「再見!」。
視圖使用雙花括號自動創建綁定到MyApp.modelInstance.myProperty
,但您可以通過多種方式創建綁定。每當myProperty
的值發生更改時,所有綁定都將自動更新。但請注意,您必須致電set("myProperty", "something new")
,以便Ember知道爲您更新綁定;如果您只說myProperty = "something new"
,它不會觸發任何更改事件。
相關問題
- 1. 使用觀察者模式來爲訂閱者建模通知
- 2. 觀察者模式 - 觀察者創建
- 3. RxJava等待一個觀察者與訂閱者等待另一個觀察者與其他訂閱者
- 4. 在觀察者中刪除訂閱
- 5. 觀察者模式
- 6. 商店取消訂閱與觀察者
- 7. 觀察者模式Java - 使用線程的多個觀察者
- 8. 取消可觀察訂閱並等待觀察者完成
- 9. 與觀察者模式
- 10. asp.net觀察者模式
- 11. 觀察者模式vs MVC
- 12. 觀察者模式類(JAVA)
- 13. 觀察者模式混淆
- 14. python觀察者模式
- 15. MVC和觀察者模式
- 16. 觀察者模式過載
- 17. 異步觀察者模式
- 18. Vue.js和觀察者模式
- 19. 觀察者模式 - 將信息傳遞給觀察者
- 20. 阻止訂閱者保存在觀察者newsletter_subscriber_save_before Magento
- 21. ember.js所有值的觀察者
- 22. Swift中的觀察者模式
- 23. wxPython中的觀察者模式
- 24. Android中的觀察者模式
- 25. J2ME中的觀察者模式
- 26. 觀察者模式中的關係
- 27. 觀察者模式或其他模式
- 28. 觀察者模式vs電抗模式
- 29. 發佈者 - 訂閱者模式,其中子訂閱者調用服務
- 30. 線程和Java中觀察者模式
其實我想要的是視圖A能夠通過模型C與視圖B進行對話。例如,如果視圖A是項目列表,則單擊關鍵字將觸發模型C中的事件。然後,視圖B監聽模型C的事件,視圖B將相應地處理事件。 – 2012-01-10 17:44:13
這種情況下的模型是什麼?這將有助於獲得一些示例代碼。模型對象應該表示應用程序中的數據(從服務器加載)。你所談論的內容似乎是關於應用和視圖狀態。 – hvgotcodes 2012-01-10 18:19:59