2012-03-17 6 views
0

我試圖找出從Ember.Button的點擊處理程序中獲取文本標籤的「Ember」方式。目前,我有這樣的(和它的作品),但我懷疑有一個更「正確」的方式做到這一點:在點擊方法中獲取Ember.Button的文本

App.RecentNameBtn = Em.Button.extend({ 
    click: function(e){ 
     App.tweetsArray.set('username', e.srcElement.innerText); 
     App.tweetsArray.loadTweets(); 
    } 
}); 

回答

3

有一個討論Ember.Button是否應該deprecated。無論如何,我會創建一個App.userController,其中包含username並在您的視圖中使用{{action}}幫助程序,請參閱http://jsfiddle.net/bZ8fY/。它可能看起來像一個開銷,但通過使用綁定,你更靈活。我也建議將邏輯從視圖移到控制器中。

把手:

<script type="text/x-handlebars" > 
    {{#view App.TweetView}} 
     <button {{action "loadTweets" target="App.userController"}}> 
      {{username}} 
     </button> 
    {{/view}} 
</script>​ 

的JavaScript:

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

App.userController = Ember.Object.create({ 
    username: 'emberjs', 
    loadTweets: function(evt) { 
     console.log(this.get('username')); 
    } 
}); 

App.TweetView = Ember.View.extend({ 
    usernameBinding: 'App.userController.username' 
}); 
​ 

+0

我的應用程序是不是很只是一個按鈕一樣簡單。這裏是更大的預覽:http://andymatthews.net/code/emberTweets/添加一個用戶後,左側出現一個按鈕。當我點擊該按鈕時,我想獲取按鈕的文本標籤並將其轉儲到文本字段中。 – commadelimited 2012-03-17 13:33:15