我編寫SPA並使用路由功能。AngularJS:裝入模板的事件
$routeProvider
.when('/',
{
controller: 'SimpleController',
templateUrl: 'partials/tkm_detailliste.html'
})
在tkm_detailliste.htm我有一個帶有ID的div。
<div id="myGrid"...
然後來了一些JavaScript,我想instanciate slik網格。
grid = new Slick.Grid('#myGrid', dataView, columns, options);
但是目前JavaScript執行div id =「myGrid」不在DOM中,因此無法找到。 我的解決方法是超時。
setTimeout(function() {
grid = new Slick.Grid('#myGrid', dataView, columns,options);
, 100);
是否有一個更優雅的預期方式來連接與JavaScript加載模板?
==更新=================
我發現了一個簡單的解決方案。
SimpleController = function($scope) {
$scope.$on('$viewContentLoaded', function() {
grid = new Slick.Grid('#myGrid', dataView, columns, options);
}
}
你在哪裏初始化你的slickGrid? – Stewie
我確實把所有東西都放在了tkm_detailliste.html中。首先是html部分,然後是javascript。 – strangeoptics
你的插件相關的javascript應該駐留在指令中,絕對不在部分內部。 – Stewie