似乎$ stateParams不工作。
通过日期如下:
通过日期如下:
$state.go('state2',{ someParam : 'broken magic' });
在目标状态上忽略的参数
console.log('state2 params:',$stateParams); // return empty object {}
码:
var app = angular.module('app',[ 'ui.router' ]); app.config(function($stateProvider) { $stateProvider .state('state1',{ url: '',templateUrl: 'state-1.html',controller : function ($scope,$state,$stateParams) { $scope.go = function () { $state.go('state2',{ someParam : 'broken magic' }); }; console.log('state1 params:',$stateParams); } }) .state('state2',{ url: 'state2',templateUrl: 'state-2.html',$stateParams) { $scope.go = function () { $state.go('state1',{ someOtherParam : 'lazy lizard' }); }; console.log('state2 params:',$stateParams); } }); });
实例可以在这里找到:
http://jsbin.com/weger/5/edit
谢谢。
你不能在状态之间传递任意参数,你需要将它们定义为$ stateProvider定义的一部分。例如。
$stateProvider .state('contacts.detail',{ url: "/contacts/:contactId",templateUrl: 'contacts.detail.html',controller: function ($stateParams) { console.log($stateParams); } }) ...
上面将输出一个定义了contactId属性的对象。如果你去/ contacts / 42,你的$ stateParams将是{contactId:42}。
有关详细信息,请参阅documentation for UI-Router URL Routing。