角度指令限制 E 中断代码
Angular directive restrict E breaks code
这是这个问题的后续。我有相同的设置:
所有模块和控制器共享角度示波器
所以根模块,控制器和指令。现在来问问题:
我有一个服务,里面写着这个:
firstModule.factory("firstService", function () {
return {
$('.mainitems').click(function () {
alert("hi")
});
};
});
还有一个指令,它嵌套在其他指令中:
secondModule.directive("secondDirective", function () {
return {
templateUrl: "./myurl",
restrict: "E",
replace: true,
compile: function (tElement, tAttrs, controller) {
return {
}
}
}
});
当我有行:restrict: "E"
时,单击功能不起作用,但是当我删除它时,它就可以工作了。
知道为什么这可能是问题吗?这是一件奇怪的事情,经过一天的调试,我发现了问题。
事实上,在工厂中管理 dom 操作是一个糟糕的模式!所有 DOM 操作都必须放在指令中,因此单击它ng-click
例如:
<div ng-controller="MyController">
<div ng-click="click()"></div>
</div>
其中 click() 是你的作用域的一个函数。所以你有这样的控制器:
secondModule.controller('MyController', function($scope){
$scope.click = function(){
//do what you want
};
});
当你点击你的div时,它会在你的控制器中调用点击函数
您的指令应该是:
secondModule.directive("secondDirective", function () {
return {
template: "<div ng-click='click()'><a>Click here</a></div>",
restrict: "E",
replace: true,
link: function (tElement, tAttrs, controller) {
}
}
});
你喜欢这样:
<second-directive></second-directive>
在这里工作 plunkr : http://plnkr.co/edit/DmkQTp?p=preview
当您提供restrict: "E"
(元素)作为配置选项时,ng
需要这样的自定义标记: <second-directive></second-directive>
来应用此指令。删除它时,它默认为 "A"
(属性),这可能是您用作应用此指令的声明。
相关文章:
- 即使被信号处理程序中断,node.js代码也会一直运行到完成吗
- AngularJS代码在一个代码笔中工作,但在移动时会中断
- 为什么这个JQuery代码会在移动设备上中断
- Javascript代码中断循环
- 切换到LSAdapter时代码中断
- 代码在第7次分割后中断
- 调用加载的顺序函数会意外中断代码
- HTML 看不到 Javascript 代码;PHP 代码中的执行中断而没有错误
- 当锚点与 KineticJS 重叠时,代码中断
- 如果脚本不在 html 文件中,则角度代码会中断
- jQuery 1.4.4 和 1.7.2 之间的 .ajax() 发生了什么导致代码中断
- 角度指令限制 E 中断代码
- 为什么预期值仅在我在调试模式下运行代码时出现,但在不调试时中断,以及如何解决此问题
- 当我尝试在jquery mobile中使用对象方法时的代码中断
- php注销重定向头中断代码
- 测试客户端是否支持css道具.重复后代码中断
- .split()中断代码
- 损坏的格式工具无法修复它.导致上一个代码块中断
- Javascript异步执行:将一个回调中断运行的代码
- 换行导致代码中断