2013-03-30 162 views
0

我有以下模板代碼獲取屬性從模板控制器

<a href="javascript:void(0)" {{bindAttr data-id="voucher.id"}} {{ action 'deleteVoucher' target="controller"}}>Delete</a> 

我的控制器代碼是

App.CreditIndexController = Ember.ArrayController.extend({ 
    deleteVoucher: function(event){ 
     //var g = this.get('data-id'); 
     //var g = $(event.target).attr('deleteVoucher'); 
     var g = $(this.target);//.attr('data-id'); 
     console.log(g); 
    }  
}); 

我新的從我的模板得到「數據ID」的值,我控制器。我試過了我的deleteVoucher函數中的代碼。但沒有人工作。

回答

1

與Ember你不必做這種方式,而不是你可以很容易地通過一個對象到你的動作助手,這是提供給你的操作處理程序作爲一個參數:

<a href="#" {{ action deleteVoucher voucher target="controller"}}>Delete</a> 


App.CreditIndexController = Ember.ArrayController.extend({ 
    deleteVoucher: function(voucher){ 
     var id = voucher.get("id") 
     console.log(id); 
    }  
}); 
1

這是比你想象:

<a href="#" {{action 'deleteVoucher' voucher}}>Delete</a> 

控制器:

App.CreditIndexController = Ember.ArrayController.extend({ 
    deleteVoucher: function(voucher){ 
    console.log(voucher.get("id")); 
    }  
}); 
  1. 你不需要專門針對控制器,因爲它是{{action}}小號
  2. 不要存放在DOM數據(voucher.id)默認的目標。這是一個不好的做法。把你的應用程序中的DOM看作你在其他地方有的反映。
  3. 當您對該元素使用動作時,無論您將其放入href屬性中,它都會自動阻止鏈接在單擊時被訪問。