0

ビューの値をコントローラーの値にバインドしようとすると、一方向のバインドの問題が発生します。

App.ApplicationController = Ember.Controller.extend({
    value: 'my value'
});

App.ApplicationView = Ember.View.extend({
    templateName: 'application',

    willInsertElement: function() {
        console.log('will insert element');
        console.log('value from controller > ', this.get('controller').get('value'));
        console.log('value > ', this.get('value'));
        console.log('completeValue > ', this.get('completeValue'));
    },

    valueBinding: Ember.Binding.oneWay('controller.value'),
    completeValueBinding: Ember.Binding.oneWay('App.ApplicationController.value')
});

「value>」は正しい値を返しますが、「completeValue>」は未定義を返します(jsFiddle http://jsfiddle.net/U29wV/7/を参照)。..

4

1 に答える 1

0

ApplicationController実際のインスタンスではなく、クラスを参照しています。

ApplicationControllerビューのプロパティを介してすでにインスタンスにアクセスしているcontrollerので、それをバインディングに使用します。

valueBinding: Ember.Binding.oneWay('controller.value'),
completeValueBinding: Ember.Binding.oneWay('controller.value')

それはそれを同一にしvalueBindingます...

于 2013-02-27T17:52:33.463 に答える