我使用this Bootstrap plugin将复选框变为一对按钮。当页面加载之前复选框存在时,它按预期工作(页面的一部分'初始HTML);但是,我需要它在Angular动态创建复选框时运行,就像设置editIndex时一样,如下面的函数所示:
ModalController.prototype.edit = function($index)
{
this.editIndex = $index;
$(":checkbox").checkboxpicker();
}
当我调用上面的函数时,实际创建按钮的函数不会被调用;它似乎是推迟的。如何调用在页面加载后创建的复选框上实际创建按钮的功能?
答案 0 :(得分:2)
我认为您应该使用$timeout服务来延迟$(":checkbox").checkboxpicker();
的执行,直到angular完成呈现模板为止。
ModalController.prototype.edit = function($index)
{
this.editIndex = $index;
$timeout(function(){
$(":checkbox").checkboxpicker();
});
}
为checkboxpicker创建自定义指令可能是更好的解决方案。像
这样的东西myApp.directive('checkboxPicker', function(){
return {
restrict: 'A',
link: function(scope, el){
$(el).checkboxpicker();
}
}
});
然后在<input type="checkbox" checkbox-picker>