Ember.jsでサブスクライバ/オブザーバパターンを使用することはできますか?たとえば、ビューAとビューBはモデルC内の変更をリッスンします。これにより、モデルCはカスタムイベントをトリガできる必要があります。 Ember.jsでモデルトリガーイベントを作成する方法を理解しようとしていましたが、これまでのところ運がありません。Ember.jsのサブスクライバ/オブザーバパターン
答えて
少なくともSproutcoreでは、これがバインディングの対象となります。
あなたはその後、あなたはその後、コントローラ
App.personController.set('content', somePerson);
App.personController = SC.ObjectController.create();
コントローラを持っているでしょう
App.Person = SC.Object.extend({
name: 'Bruce Banner'
});
モデルを持っている場合
今、任意のvモデルはモデルオブジェクトのデータにバインドできます。
SC.LabelView = SC.LabelView.extend({
...
valueBinding: 'App.personController.name'
})
あなたは
somePerson.set('name', 'Chris');
名前を変更するのであればビューは自動的に更新されます。
あなたが探している機能は、Ember.jsの「Bindings」と呼ばれています。
ありますが示唆されているものを行う方法を説明し、ホームページ上の例のトンがありますが、ここで簡単にまとめている:
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. jQueryのEmber.js
- 2. iOSのユニバーサルリンクEmber.js
- 3. ember.jsのイベントハンドラ
- 4. Ember.jsのユニットテスト
- 5. Ember.jsハンドルバーグローバリゼーションアプローチ
- 6. Ember.jsオブザーバー
- 7. Ember.JS && Coffeescript
- 8. ボタン:Ember.js
- 9. ember.jsのデータのブートストラップ
- 10. Ember.jsコードの概要
- 11. Ember.js:コントローラ間のデータバインド
- 12. Ember.jsアプリオフラインの動作
- 13. ember.jsのOauthとデータベース
- 14. Ember.js 'Objects'と 'ArrayController'
- 15. Ember.jsウィジェット/コンポーネント?
- 16. testing ember.js connectOutlet
- 17. Building Ember.js Fail
- 18. Ember.jsルーティング、アウトレット、アニメーション
- 19. ember.jsノードとnginx
- 20. Ember.js + Handlebarsカスタムヘルパー
- 21. Ember.jsワイルドカードURL
- 22. ember.jsは手動
- 23. Ember.jsとarrangedContent
- 24. リダイレクトURL - Ember.JS
- 25. Ember.jsエラー記録
- 26. Ember.js jQuery UI Sortable
- 27. Ember.js&REST API
- 28. Ember.jsとGoogle Analytics
- 29. Ember.js PushObjectはArrayController
- 30. Ember.js週刊カレンダーナビゲーション
私が探していたのは、ビューAがモデルCを通してBを表示できるようにすることです。たとえば、ビューAがアイテムのリストである場合、キーワードをクリックするとモデルCのイベントがトリガーされます。ビューBはモデルCのイベントをリッスンし、ビューBはそれに応じてイベントを処理します。 –
この場合のモデルは何ですか?これは、いくつかのコード例を持つのに役立ちます。モデルオブジェクトは、アプリケーション内のデータ(サーバーからロードされたデータ)を表すものとします。あなたが話していることは、アプリとビューの状態に関するものと思われます。 – hvgotcodes