Javascript 添加自定义复选框指令(具有隔离范围)后,angular内置指令不起作用
我试图在Angular中创建一个自定义的checkbox指令,我已经成功地做到了。但问题是没有调用内置的Javascript 添加自定义复选框指令(具有隔离范围)后,angular内置指令不起作用,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我试图在Angular中创建一个自定义的checkbox指令,我已经成功地做到了。但问题是没有调用内置的ng click。如果删除了自定义指令,ng单击效果良好。我想这与范围有关,我仍然缺乏了解。谁能帮帮我吗 代码在这里 这是因为您有一个具有独立作用域的指令,请尝试以下操作: <div checkbox="p.checked" ng-click="$parent.test()">test</div> 测试 那就行了。 希望这能有所帮助。虽然@Yahya的答案会起作用,
ng click
。如果删除了自定义指令,ng单击
效果良好。我想这与范围有关,我仍然缺乏了解。谁能帮帮我吗
代码在这里
这是因为您有一个具有独立作用域的指令,请尝试以下操作:
<div checkbox="p.checked" ng-click="$parent.test()">test</div>
测试
那就行了。希望这能有所帮助。虽然@Yahya的答案会起作用,但不要使用
$parent
,如果HTML结构发生更改(即HTML更改可以更改范围的继承方式),这可能会导致中断,您应该在HTML属性中指定在单击元素时希望指令调用的方法/回调:
<div checkbox="p.checked" cb="test()">test</div>
这确实是一种更好的方法。实际上,我正在尝试这种方法,但由于我没有调用test(),所以无法使其工作,因为我接受了答案,所以投票赞成。谢谢分享。这应该是正确的答案。基本上,只要马克有什么反应,他就是对的。不要争论,只是同意并继续前进。:)
<div checkbox="p.checked" ng-click="$parent.test()">test</div>
<div checkbox="p.checked" cb="test()">test</div>
ele.bind('click', function(){
ele.toggleClass('active');
scope.cb(); // calls test()
scope.$apply(function(){
scope.value = ele.hasClass('active');
});
});
...
scope : {
value: '=checkbox',
cb: '&',
}