1
我試圖從控制器更改$state.current.data
的值....但此更改未反映在.config(function($ stateProvider){} 。
angular.module("main.loadbalancer", ["ui.bootstrap", "ui.router"]).config(function($stateProvider) {
return $stateProvider.state("main.loadbalancer", {
data: { readonly : false },
url: "device/:id",
views: {
"[email protected]": {
templateUrl: "loadbalancer/loadbalancer.html",
controller: "LoadBalancerCtrl"
}
}
}).state("main.loadbalancer.vips", {
url: "/vips",
templateUrl: "loadbalancer/vip-table.html",
resolve: {
isReadonly: function() {
console.log(this.data.readonly);
console.log("----------------");
if (this.data.readonly) {
$state.go("main.loadbalancer.readonly");
}
}
},
controller: "VipListCtrl"
});
控制器:。
angular.module('main.loadbalancer').controller('LoadBalancerCtrl', function($scope, $state, SpinnerSvc, LoadBalancerSvc, Account, DeviceValue) {
$scope.spinnerOpts = SpinnerSvc.options;
return (function(load) {
$scope.$on('deviceNumberUpdated', load);
return load();
})(function() {
return LoadBalancerSvc.getLoadBalancer().then(function(lb) {
if (lb.ha_status =="secondary") {
$state.current.data = true;
console.log($state.current.data);
$state.go("main.loadbalancer.readonly");
} else {
$state.current.data = false;
}
Account.id = lb.customer;
return $scope.loadBalancer = lb;
});
});
});