6

emberjs でのバインドに問題があります。Ember テキストフィールドをコントローラー内の変数にバインドしました。テキスト フィールドに書き込むと、バインドされた変数が正しく更新されます。

ここで、JS を使用して変数 (およびテキスト フィールド内のテキスト) を変更したいと考えています。私がしても何も起こりません。

App = Ember.Application.create({});

App.FormInfo = Em.TextField.extend({
    insertNewline: function(){
        App.AController.clear();
    }
});

App.AController = Em.ArrayController.create({
    content: [],
    name: '',
    clear: function(){ //I want this function to clear the text field and set name to an empty string
        this.name = '';
        console.log(this.name);//expected empty string; actual user input
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-0.9.5.min.js"></script>
<script type="text/x-handlebars">
    {{view App.FormInfo placeholder="Name" valueBinding="App.AController.name"}}
</script>

4

1 に答える 1

12

setあなたはそのように使う必要があります

this.set('name', '');

あなたがしていたことの代わりに。

this.name = '';

KVO / Bindingは、準拠したメソッドを使用した場合にのみ発生します。これが、そもそもこれらのメソッドが存在する理由です。

これが実用的なフィドルです。

于 2012-07-02T21:32:27.763 に答える