我在过去一周制作了一些AngularJS指令,它们都有效,但是这个指针不起作用,我不知道我做错了什么..
这是我正在谈论的指令:
app.directive('idleCheck', [function () {
return {
restrict: 'I',
link: function (scope, elem, attrs) {
ifvisible.setIdleDuration(5);
ifvisible.on("idle", function () {
var div = document.getElementById('fullscreenWrap');
div.style.cursor = 'none';
stream.pause();
});
ifvisible.on("wakeup", function () {
var div = document.getElementById('fullscreenWrap');
div.style.cursor = 'auto';
stream.resume();
});
}
}
}]);
这是我的HTML代码,我称之为指令:
<div id="fullscreenWrap" idle-check>
...
</div>
你看到代码中有什么问题吗? 或者你知道它为什么不起作用吗?
答案 0 :(得分:2)
您需要将限制字段更改为&#39; A&#39;。
restrict选项通常设置为:
&#39; A&#39; - 仅匹配属性名称&#39; E&#39; - 仅匹配元素名称&#39; C&#39; - 仅匹配类名称这些限制可以根据需要组合使用:
&#39; AEC&#39; - 匹配属性或元素或类名
答案 1 :(得分:1)
不知道它实际上给你的问题什么错误很可能是你的指令声明。
没有restrict: I
。 Angular仅支持三个值:
A
- 仅匹配属性名称
E
- 仅匹配元素名称
C
- 仅匹配班级名称
你可以但三者的任意组合虽然支持多种情况。
文档:https://docs.angularjs.org/guide/directive#template-expanding-directive
它在template expanding directive
部分的底部说明了信息。
答案 2 :(得分:1)
可用的restrict
选项包括:'E'
,'A'
,'C'
,'M'
EACM
中的一个将指令限制为特定的指令声明样式。
您甚至可以对同一指令restrict: 'AC'
If you don't restrict any, the defaults (elements and attributes) are used
。
E
- 元素名称(默认):<my-directive></my-directive>
A
- 属性(默认):<div my-directive="exp"></div>
C
- 上课:<div class="my-directive: exp;"></div>
M
- coMment:<!-- directive: my-directive exp -->
例如:
ng-if
仅限'A'
。因此它只能用作属性,不能用作注释或元素
这里是ngIf
的angularjs代码var ngIfDirective = ['$animate', function($animate) {
return {
transclude: 'element',
priority: 600,
terminal: true,
restrict: 'A', // --> This means restricting to Attribute