AngularJS:已加载模板的事件

时间:2013-12-10 14:24:12

标签: angularjs templates routes

我写了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);
    }
}

1 个答案:

答案 0 :(得分:2)

将指令连接到该元素,然后在链接函数中,您可以使用范围发出一个事件。$ emit(“ELEMENT READY”)让应用程序的其余部分知道它是好的。