Я пишу SPA и использую функцию маршрутизации.AngularJS: событие для загруженного шаблона
$routeProvider
.when('/',
{
controller: 'SimpleController',
templateUrl: 'partials/tkm_detailliste.html'
})
В tkm_detailliste.htm У меня есть div с id.
<div id="myGrid"...
Затем появляется некоторый javascript, где я хочу создать сетку слайков.
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