我正在尝试将状态从其父页面切换到子状态。这是我的设置:
我有两个州的独立控制器。
.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应该使用不同的方式吗?