我写了SPA并使用路由功能。
$routeProvider
.when('/',
{
controller: 'SimpleController',
templateUrl: 'partials/tkm_detailliste.html'
})
在tkm_detailliste.htm中,我有一个带有id的div。
<div id="myGrid"...
然后是一些javascript我想要实现一个slik-grid。
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);
}
}
答案 0 :(得分:2)
将指令连接到该元素,然后在链接函数中,您可以使用范围发出一个事件。$ emit(“ELEMENT READY”)让应用程序的其余部分知道它是好的。