Я определил state
с $stateProvider
, как вы можете видеть ниже:
(function() {
'use strict';
angular.module('app').config(stateConfig);
function stateConfig($stateProvider) {
$stateProvider
.state('baseInformation', {
parent: 'panel',
url: 'baseInformation',
params: {
backFilters: null
},
views: {
'panel': {
templateUrl: 'baseInformation.html',
controller: 'BaseInformationController',
controllerAs: 'vm'
}
}
});
}
})();
В другом контроллере я использую $state.go('baseInformation', {backFilters: 12})
.Теперь я хочу изменить значение backFilters
параметров с помощью следующего кода:
(function () {
'use strict';
angular.module('app').controller('BaseInformationController', BaseInformationController);
function BaseInformationController($transition$, CommonUtils) {
var vm = this;
// updated question
CommonUtils.checkParamtersAndLog($transition$);
$transition$.params().backFilters = 20;
// updated question
CommonUtils.checkParamtersAndLog($transition$);
}
})();
, но я получил следующее сообщение об ошибке:
TypeError: Невозможно назначить свойство только для чтения'backFilters' объекта '#'
Я также искал эту проблему, но не нашел пути, и она очень важна для меня.
ОБНОВЛЕНИЕ
Я использовал $transition$.params().backFilters
в сервисе, основанном на его значении, может быть что-то вроде этого:
(function () {
'use strict';
angular.module('app').factory('CommonUtils', CommonUtils);
function CommonUtils() {
var service = {
checkParamtersAndLog: checkParamtersAndLog
};
function checkParamtersAndLog(transition) {
if(transition.params().backFilters == null) {
console.log('backFilters is null');
}
else {
console.log('backFilters is not null')
}
}
return service;
}
})();
и хочу изменить значение $transition$.params().backFilters
на контроллерах.