jca*_*er2 12 angularjs angularjs-directive
我正在尝试编写我的第一个AngularJS指令:一个涉及该link函数.正在加载该指令,但是当我在我的页面中使用它时,该link函数不会被调用.
这是小提琴:http://jsfiddle.net/jCUSh/115/
这是HTML:
<div ng-app="biApp">
<google-maps-symbol></google-maps-symbol>
</div>
Run Code Online (Sandbox Code Playgroud)
和JavaScript:
var appModule = angular.module('biApp', []);
appModule.directive('googleMapsSymbol', function () {
console.log("Directive was run");
return {
link: function (scope, elem, attrs) {
console.log("Link was called");
}
};
});
Run Code Online (Sandbox Code Playgroud)
我敢打赌,我做错了一些简单的事情.
dre*_*w_w 19
angular的默认值是假设指令attributes不是elements!您正在使用指令作为元素,因此您需要使用restrict指定它.更新的代码如下:
appModule.directive('googleMapsSymbol', function () {
console.log("Directive was run");
return {
restrict: 'E',
link: function (scope, elem, attrs) {
console.log("Link was called");
}
};
});
Run Code Online (Sandbox Code Playgroud)
请注意restrict: 'E',.祝你好运!
更新你的小提琴: http ://jsfiddle.net/j8ZZ4/
这不是您的情况,但当您的指令命名不正确时,可能会出现同样的问题。尤其要注意名称中的破折号。由于 angular 会在它们之间自动转换,因此这是一个非常常见的错误。
考虑这个模板
<div>
<div this-wont-work></div>
<div this-will-work></div>
</div>
Run Code Online (Sandbox Code Playgroud)
有了这个指令。
angular
.module('biApp')
.directive('this-wont-work', () => ( { link: () => console.log('nope')} ))
.directive('thisWillWork', () => ( { link: () => console.log('works')} ))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15821 次 |
| 最近记录: |