2015-09-25 97 views
0

我在過去一週取得了一些AngularJS指令和他們所有的工作,但這個是行不通的,我不知道我做錯了..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> 

你看到什麼錯誤代碼? 或者你知道它爲什麼不起作用嗎?

+1

變化限制在「A」 – Marcio

+1

恰恰是錯誤的給予什麼?所有的指令都是一致的嗎?沒有'限制:我'。只有「A」 - 只匹配屬性名稱,「E」 - 只匹配元素名稱,「C」 - 只匹配類名稱。但是,您可以將三者結合起來。 – ste2425

+1

指令僅適用於限制類型A,E和C.更改限制:'I',限制:'A/C/E' – Ved

回答

2

您需要將restrict字段更改爲'A'。

的限制選項通常設置爲:

「A」 - 只匹配屬性名稱「E」 - 只匹配元素名稱「C」 - 只匹配類名這些限制可以全部被組合爲需要:

'AEC' - 匹配任一屬性或元素或類名

Angular directive

1

不知道它實際上給你的問題是什麼錯誤很可能是你的指令聲明。

沒有restrict: I。角僅支持這三個值:

A - 只匹配屬性名稱 E - 只匹配元素名稱 C - 只匹配類名

你可以,但三,雖然任意組合,以支持多個案件。

Docs:https://docs.angularjs.org/guide/directive#template-expanding-directive 它聲明在template expanding directive部分底部的信息。

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 - 註釋:<!-- 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