Я пытаюсь переключить состояния в подэлемент со своей родительской страницы. Вот мои настройки:
- Я форма (URL:/сеанс), который нг клика прилагается
- НГ щелчок запускает $ POST ресурсов и вызывает
- $ state.go (url:/session /: sessionId)
У меня есть отдельные контроллеры для двух состояний.
.config(function config($stateProvider) {
$stateProvider
.state('alkalom', {
url: '/alkalmak',
controller: 'AlkalomCtrl',
templateUrl: 'home/home.tpl.html',
data:{ pageTitle: 'Alkalmak' }
})
.state('alkalom.details', {
url: '/:alkalomId',
controller: 'AlkalomItemCtrl',
templateUrl: 'home/alkalom.tpl.html',
data:{ pageTitle: 'Alkalom' }
});
})
.controller('AlkalomCtrl', function HomeController($scope, Global, Alkalom , $stateParams, $state) {
console.log('AlkalomCtrl initialized', $stateParams);
$scope.alkalmak = Alkalom;
$scope.setupAlkalom = function(alkalom) {
alkalom = new Alkalom(alkalom);
alkalom.$save(function(value, hdrs){
$state.go('.details', {'alkalomId': value._id});
});
};
$scope.today = function() {
return Date.now().day;
};
$scope.nextHour = function() {
return Date.now().hour + 1;
}
})
.controller('AlkalomItemCtrl', function AlkalomItemCtrl($scope, Global, Alkalom, $stateParams) {
console.log('AlkalomItemCtrl initialized', $stateParams);
$scope.jogasok = Global.getJogasok();
$scope.alkalom = Alkalom.get($stateParams.alkalomId)
$scope.addJogas = function(jogas) {
$scope.jogasok = Global.addJogas(jogas);
$scope.addResztvevo(jogas);
};
$scope.addResztvevo = function(jogas) {
$scope.alkalom.$addResztvevo({
'_id': $scope.alkalom._id,
'jogas': jogas._id
}, function(value, hdrs) {
$scope.alkalom = value;
// .resztvevok.push(jogas);
});
};
$scope.removeResztvevo = function(index) {
$scope.alkalom.resztvevok.splice(index, 1)
$scope.alkalom.$save();
};
});
Здесь вы можете видеть записи журнала. На шаге 1 запускается первый журнал. Но больше никаких журналов не запускается! Тем не менее хэш местоположения меняется в браузере.
Должно ли $ state.go использовать по-другому?