2012-08-16 60 views
2

在提交按鈕後,從Ember.TextField獲取輸入值的最佳解決方案是什麼?如何在Ember.js應用程序中獲取輸入值?

假設我有簡單的應用程序發送消息。我指定表示用戶在其中輸入他的消息輸入形式的視圖:

App.TextView = Ember.View.extend({ 
    templateName: 'text', 

    submit: function(event) { 
     console.log(event); 
    } 
}); 

然後,有此視圖把手模板:

<script type="text/x-handlebars" data-template-name="text"> 
    <h1>Send the message:</h1> 
    <div class="send_form"> 
     {{view Ember.TextField}} 
     <button type="submit">Done</button> 
    </div> 
</script> 

基本上,我需要一兩件事。當用戶點擊按鈕時,我需要得到通知(在提交功能或我的應用程序中的任何其他地方),我需要從TextField獲取值。我怎樣才能做到這一點?

回答

9

例如,您可以將文本字段的值綁定到視圖中的消息屬性。

或許有其他的解決辦法,但我認爲這很簡單:http://jsfiddle.net/Sly7/vfaF3/

<script type="text/x-handlebars"> 
    {{view App.TextView}} 
</script> 

<script type="text/x-handlebars" data-template-name="text"> 
    <h1>Send the message:</h1> 
    <div class="send_form"> 
    {{view Ember.TextField value=view.message}} 
    <button type="submit" {{action "submit" target=view}}>Done</button> 
    </div> 
</script>​ 
App = Ember.Application.create({}); 

App.TextView = Ember.View.extend({ 
    templateName: 'text', 
    message: '', 

    actions: { 
    submit: function(event) { 
     console.log(this.get('message')); 
    } 
    } 
}); 
+0

感謝。然而,你的例子不適合我,因爲我的應用程序使用路由器,並且操作被重定向到當前的路由器狀態。我該如何處理? – 2012-08-16 13:18:07

+1

啊,看來'target =「view」'解決了它......謝謝,夥計! – 2012-08-16 13:19:08

+0

對不起,我沒有預料到這一點;) – 2012-08-16 13:22:38

相關問題