2014-12-08 114 views
1

我试图使动态选项的一些嵌套状态。ui路由器嵌套状态参数抛出

这种状态的正常工作:appapp.processapp.process.step2

但是我的情况有点不同,因为我想通过在URL的一些数据。

这里是我的状态

.state('app.process/:type', { 
      url: "/process/:type", 
      views: { 
       'menuContent1': { 
        templateUrl: "templates/intro.html", 
        controller: 'IntroCtrl', 

       } 
      } 
     }) 

     .state('step/:type/:step', { 
      url: "/process/:type/:step", 
      parent: 'app.process', 
      views: { 
       'proiew': { 
        templateUrl: "templates/processes/increase.html", 

        controller: "increaseCtrl", 



       } 
      } 
     }) 

试图运行这个

$state.go('step/:type/:step', {type:$stateParams.type, step:2}); 

我得到一个错误

Error: Could not resolve 'new/:type/:step' from state 'app.process/:type' 
    at Object.transitionTo (http://localhost:8100/lib/ionic/js/ionic.bundle.js:33979:39) 
    at Object.go (http://localhost:8100/lib/ionic/js/ionic.bundle.js:33862:19) 
    at Scope.$scope.goNext (http://localhost:8100/js/controllers/IntroCtrl.js:11:18) 
    at http://localhost:8100/lib/ionic/js/ionic.bundle.js:18471:21 
    at http://localhost:8100/lib/ionic/js/ionic.bundle.js:43026:9 
    at Scope.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20326:28) 
    at Scope.$apply (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20424:23) 
    at HTMLButtonElement.<anonymous> (http://localhost:8100/lib/ionic/js/ionic.bundle.js:43025:13) 
    at http://localhost:8100/lib/ionic/js/ionic.bundle.js:10478:10 
    at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:7950:18) 

有什么建议?

+0

传递参数 – 2014-12-08 07:35:14

+0

你只需要:与步:在URL类型的占位符,而不是在州名 – cthulhu 2014-12-08 07:41:20

回答

0

有很多不同的方法可以将参数传递给一个状态,首先你可以简单地设置参数点击链接,然后从范围中取出它们。

但如果我们正在谈论更可靠和可读的东西,我建议this post,特别是我喜欢使用Resolve。我会把这里的决心的一个例子,但我建议你阅读,并找出最适合您:以不同的方式

$stateProvider 
     .state("customers", { 
     url : "/customers", 
     templateUrl: 'customers.html', 
     resolve: { 

      // A string value resolves to a service 
      customersResource: 'customersResource', 

      // A function value resolves to the return 
      // value of the function 
      customers: function(customersResource){ 
       return customersResource.query(); 
      } 
     }, 
     controller : 'customersCtrl' 
     }); 
+0

您可以使用'数据'参数而不是解析。但是你的方法不允许你通过在url中输入customers/123来获得特定的客户 – 2014-12-08 07:56:05