У меня есть директива чата, которую я использую для размещения чата на странице.
mod.directive('chat', function () {
return {
templateUrl: '/chat',
replace: true,
scope: {
chatID:'@chat',
},
controller: function ($scope, $element, $timeout) {
var id = $scope.chatID
...
},
link: function ...
}
})
HTML выглядит так:
<div class="chat" chat="{{currentChatID}}" ui-view="currentChat"></div>
<div class="content" ui-view="mainContent"></div>
Это в файле под названием "стандартный"
mod.config(function($stateProvider) {
$stateProvider.state('standard', {
views: {
'main': {
templateUrl: '/tmpl/standard',
controller: function($scope, $timeout) {
$scope.currentChatID = ''
$scope.setCurrentChatID = function(newID) {
$scope.currentChatID = newID
}
}
}
}
})
})
Я использую angularjs-ui-router для создания родительского представления с директивой чата, обеспечивающей чат внутри этого представления. Это отлично работает при загрузке первой страницы, загружается чат. Но когда я меняю страницу/комнату чата, я использую другой контроллер для запуска setCurrentChatID()
. Это изменяет currentChatID
для элемента чата в DOM, я также вижу, что свойства элемента чата меняются на новый идентификатор в angularjs-batarang, но контроллеры директивы чата не запускаются. Как заставить это работать правильно/активировать контроллеры чата при изменении идентификатора чата?
Спасибо.