4

Ember.jsのドキュメントとサンプルを読みましたが、バインディング付きのネストされたビューは少し混乱しています。

私は次の省略されたHTMLを持っています(正常に動作しています):

{{#view App.outerArea}}
    {{#view innerArea}}
        {{view Ember.TextField valueBinding="parentView.parentView.bound.username"}}
    {{/view}}
{{/view}}

...およびJavaScript(これも正常に機能しています):

App = Ember.Application.create();
App.outerArea = Ember.View.extend({
    bound : {
        username:'test',
    },
    innerArea: Ember.View.extend({}),
});

(HTMLからinnerAreaを削除すると、「parentView.parentView。」を完全に削除できます。)

これをクリーンアップするために私は試しました:

...
{{view Ember.TextField valueBinding="bound.username"}}
...
innerArea: Ember.View.extend({
    bound: function() {
        return App.outerArea.bound;
    }
})

そして試した:

{{view Ember.TextField valueBinding="getPath(bound.username)"}} // with above bound: function().

そして他のいくつかの組み合わせですが、それらはまったく機能しません。

TextField valueBindingから「parentView.parentView.bound.username」を参照するためのより洗練された方法はありますか?これには複数のアプローチがありますか?この種のものに最適なデザインパターンは何ですか?

ありがとうございました!

4

1 に答える 1

2

parentViewまず、元の例では、テキスト フィールドの値をバインドするために1 つだけ必要です( http://jsfiddle.net/MikeAski/tkDp6/を参照)

第二に、内側のビューでバインドを定義する方法boundは良くありません: 試してみてください:

...
innerArea: Ember.View.extend({
    boundBinding: 'parentView.bound'
})

( http://jsfiddle.net/MikeAski/tkDp6/2/を参照)

于 2012-04-11T04:09:57.373 に答える