angularjs – angular UI路由器| $stateParams不工作

前端之家收集整理的这篇文章主要介绍了angularjs – angular UI路由器| $stateParams不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎$ 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

猜你在找的Angularjs相关文章