我有一個自定義指令myDirective
,它執行元素上的任務。ng-if中的AngularJS指令不會運行
我有這個指令在ng-if
塊
<div ng-if="condition">
<div my-directive></div>
</div>
事情是這樣的小提琴:http://jsfiddle.net/hGnvv/只有ng-if
條件變成真我$http
請求加載之後。
該指令可能在運行時編譯,但從未鏈接,因此代碼從不運行。如果我用ng-show
代替ng-if
該指令工作正常。
任何解決方案?
編輯:我不能使用ng-show
,因爲我在表單中有130個指令。 20條指令無論如何都運行,另一條指令根據我的對象類型運行。
ng-if="type == 1"
然後加載這些元素ng-if="type == 2"
然後加載其它元件等
如果我改變ng-if
到ng-show
,窗體需要787-8來加載,而不是1秒。
你已經有了一個解決方案。用ng-replace代替ng-if – nikhil
我不能那樣做,我在單個表單上有130條指令。如果我用ng-show替換ng-if,那麼所有必須運行的代碼都會使表單變慢(8s而不是〜1s)。 –
如果可能,請使用ng-show。 Ng-if從DOM中刪除元素,所以沒有辦法讓角度來編譯它。 –