未找到所需的角度指令
问题描述:
我想了解角度指令中链接函数的执行情况。但是,我陷入了一个非常简单的设置。以下是HTML代码:未找到所需的角度指令
<!doctype html>
<html ng-app="demoApp">
<body>
<div ng-controller="DemoController" class="container">
<directiveone directivetwo ></directiveone>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
“demoApp” 在app.js定义如下:
angular.module('demoApp', [])
.controller("DemoController", function(){
})
.directive("directiveone", function(){
var linker = function(scope, element, attrs){
console.log("directiveone link called");
};
return {
link : linker
}
})
.directive("directivetwo", function(){
var linker = function(scope, element, attrs){
console.log("directivetwo link called");
};
return {
require: "directiveone",
link : linker
};
});
当我运行这段代码,我得到的错误:
Controller 'directiveone', required by directive 'directivetwo', can't be found!
我无法找出这里的错误。文件表明它可能是一个错字,但对我来说并不明显。
答
指令默认为仅属性。您的directiveone
指令未被拾取 - 您需要在其定义中指定restrict: 'E'
,或将其应用为属性(<div directiveone directivetwo>...
)
是的,文档说它默认为E和A. https://docs.angularjs .org/api/ng/service/$ compile#-restrict-但后来我意识到这个文档是针对v1.3.0的,我使用的是1.2.26。 – Vaibhav 2014-10-09 14:22:16