2012-07-02 68 views
5

我在綁定emberjs時遇到了問題。我已經綁定了一個ember文本框到控制器中的一個變量。當我寫入文本字段時,綁定變量會正確更新。emberjs綁定

現在我想通過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>

回答

10

您需要使用set像這樣

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

,而不是你在做什麼。當您使用標準的方法

this.name = '';

的志願/綁定的東西只發生;這就是爲什麼這些方法首先存在。

Here is a working fiddle.

+0

啊,謝謝。我曾嘗試設置,但錯誤地使用它(並認爲它是錯誤的)。 – Nino