从控制器中的模板获取属性

时间:2013-03-30 07:28:11

标签: ember.js

我有以下模板代码

<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);
    }    
});

我是新手从我的控制器模板中获取“data-id”的值。我在deleteVoucher函数中尝试了代码。但都没有效果。

2 个答案:

答案 0 :(得分: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 :(得分:1)

比你想象的容易:

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

控制器:

App.CreditIndexController = Ember.ArrayController.extend({
  deleteVoucher: function(voucher){
    console.log(voucher.get("id"));
  }    
});
  1. 您无需专门定位控制器,因为它是{{action}}的默认目标
  2. 不要将数据(voucher.id)存储在DOM中。这是一个不好的做法。将DOM视为您应用程序中其他地方的反映。
  3. 当您对该元素使用操作时,您在href属性中添加的内容无关紧要:它会自动阻止点击时访问该链接。