2015-10-07 88 views
4

我使用Material Design lite 1.0.4和Angular.js 1.1.3。 我創建了包含複選框的部分文件,其中包括部分文件使用:材質設計精簡版的複選框設計有時不反映

<div data-ng-include data-src="'views/partials/filter.html'"></div> 

現在的問題是,當我刷新頁面會顯示一段老複選框和某個材料的。行爲是不可預測的。有時它可以在刷新時順利進行。

這是複選框碼之一:如果我不使用NG-包括在HTML文件中的代碼直接寫

<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect"> 
    <input type="checkbox" class="mdl-checkbox__input" checked /> 
    <span class="mdl-checkbox__label"> less than 4000</span> 
</label> 

的代碼工作正常。但是我必須使用ng-include,因爲部分將包含在多個頁面上,並且也取決於特定條件(如果不需要,不想加載模板)。

+0

也許[http://stackoverflow.com/questions/32658295/material-design-lite-table-adding-rows-dynamically-breaks-format](http://stackoverflow.com/questions/32658295/material-design-lite-table-adding-rows-dynamically-breaks-format)有幫助。 – venkatvb

回答

0

由於通過ajax加載的內容不適用於Materal設計。需要更新一次設計視圖載荷:

$rootScope.$on('$viewContentLoaded', function() { 
    $timeout(function() { 
     componentHandler.upgradeAllRegistered(); 
    },0); 
}); 

材料設計精簡版會自動註冊並呈現標記在網頁加載時MDL類的所有元素。但是,在您動態創建DOM元素的情況下,您需要使用upgradeElement函數註冊新元素。

http://www.getmdl.io/started/index.html#dynamic