有些時候需要在渲染完畢后,引用其他類似JQ插件的初始化工作。這時候需要使用
data-repeat-rendered
的回調函數。
應用場景:
在metro-start界面下,需要給每個tile引用click-transform的效果。如果使用avalon的ms-repeat構造出來的tiles,是沒有這個效果的。
解決方案:
使用data-repeat-rendered
回調函數。
data-repeat-rendered: function(action, offset, length) //this指向當前DOM元素 //action: 操作,比如'del'
<a ms-attr-href="el.Url" target="_blank" ms-repeat="systems" data-repeat-rendered='subSystemsRendered'>
<div data-click="transform" class="tile bg-darkOrange">
<div class="tile-content icon">
<i class="icon-new-tab-2"></i>
</div>
<div class="brand">
<div class="label">{{el.Name}}</div>
</div>
</div> <!-- end tile -->
</a>
在VM定義中:
var subSystemVm = avalon.define({
$id: "subSystemVm",
hasSubSystem: false,
firstSystem: {},
systems: [],
subSystemsRendered: function() {
$(this).find('[data-click=transform]').tileTransform();
},
...