Что мне кажется проблемой, так это использование $state.go(state, params)
и сохранение params
на контроллере состояния независимо от компонента.Установленный мной plunkr, демонстрирующий это, связан здесь: https://plnkr.co/edit/u5VaMZIBtVoBGbAZaQe0?p=preview
По сути, я делаю настройку двух состояний, одно из которых связано с другим.Я использую $state.go
, чтобы перейти в одно из этих состояний с переданными параметрами.Похоже, эти параметры не передаются, и мне интересно, почему это так.
Я использую AngularJS версии 1.6.6 и ui.router версии 0.4.2, если это имеет значение или нет.
var app = angular.module("yay", ['ui.router']);
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
var states = [
{
name: 'paramsDontWork',
url: '/doesntwork',
template: '<div>hi{{variable}}</div><a style="color:blue;" ng-click="goto()">goto</a>',
controller: ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams) {
$scope.variable = 'hi';
$scope.goto = function() {
$state.go('newplace', { should: "should"});
};
}],
},
{
name: 'newplace',
url: '/newplace',
template: 'new place {{should}} have params<br><a ui-sref="paramsDontWork">hi</a>',
controller: ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams) {
console.log($stateParams);
$scope.should = $stateParams.should;
}]
}
];
states.forEach(function(state) {
$stateProvider.state(state);
});
$urlRouterProvider.when('', '/doesntwork');
}]);