1

我试图设置我的第一个角度的应用程序,我遇到了与ui路由器的困难。在功能上,用户填写一份调查问卷,然后将其发送到一个页面,其中包含调查结果。提交时,用户的结果会保存到工厂,并且每次提交时都会增加一个ID。我似乎无法使用ui-router来解析该个性化页面。从ResultsCtrlAngularjs ui路由器无法解析状态'调查''结果/ 0'

routerApp.controller('FormCtrl', ['$scope', 'questions', 'users', 'results', 
    function($scope, questions, users, results){ 
     $scope.responses = []; 
     $scope.results = []; 
     $scope.multChoice = []; 
     $scope.imageQuestions = []; 
     $scope.questions = questions.questions; 
     $scope.code = results.lastId; 
     results.results.push($scope.results); 
     results.lastId++; 

     console.log($scope.results); 
     users.create({responses: $scope.responses, results: $scope.results});  

代码:

相反,我得到这个错误:

Could not resolve 'results/0' from state 'survey'

代码从FormCrtl

routerApp.controller('ResultsCtrl', ['$scope', '$stateParams', 'results', function($scope, $stateParams, results){ 
    console.log('hello world'); 
}]); 

代码从UI路由器:

.state('results', { 
      url: '/results/{id:int}', 
      templateUrl: '../../views/results.html', 
      controller: 'ResultsCtrl', 
      resolve: { 
      post: ['$stateParams', 'results', function($stateParams, results) { 
       return results.results[id]; 
      }] 
      }}) 
从调查HTML

代码:从结果工厂

</div> 
    <label>Please confirm that you have answered all of the questions</label> 
    <button ng-click = 'addUser()' ui-sref = 'results/{{code}}'>Submit</button> 
</form> 

代码:

routerApp.factory('results', [ function(){ 
    var o = { 
     results: [], 
     lastId: 0 
    }; 

    return o; 
}]); 
+0

单击按钮时什么也没有发生? – WMios

+0

什么是控制台打印? – WMios

+0

正确,我在标题中得到错误 – Carriemf

回答

1

您使用错误的国家名称ui-sref指令内,并且使你得到的错误。 ui-sref指令确实接受stateName并通过注册状态进行搜索。

ui-sref = 'results({id: code})' 
+0

这并不是错误,所以它是朝着正确方向迈出的一步,但它不会重定向。 – Carriemf

+0

@Carriemf你是否尝试更改该代码? –

+0

是的,它没有错误,但它也没有重定向。 – Carriemf