2017-04-02 121 views
0

我呼叫面臨的問題兒童UI狀態路由器控制器。控制器不調用AngularJS

URL正在改變,但控制器沒有調用。

沒有控制檯錯誤*

請檢查代碼:

HTML

<a style="cursor: pointer;" class="btn btn-default btn-xs" ui-sref="interactions.details({id:n.id})">Detail</a> 

路由器

.state('interactions', { 
      url: '/interactions',   
      data: { 
       pageTitle: 'Interaction', 
       IsLoginPage: false 
      }, 
      templateUrl: '../../modules/interaction/views/interaction.html', 
      controller: 'interactionCtl' 
     }) 
     .state('interactions.details', { 
      url:'/details/:id', 
      data: { 
       pageTitle: 'Interaction Details', 
       IsLoginPage: false 
      }, 
      templateUrl: '../../modules/interaction/views/interactionDetail.html', 
      controller:'interactionCtlDetails' 
     }).run(function ($rootScope, settings, $cookies, $http, $location, AuthenticationService, $state, $stateParams) { 

    $rootScope.$state = $state; 
    $rootScope.$stateParams = $stateParams; 

}); 

控制LER路由

warApp.controller('interactionCtlDetails', ["$scope", '$rootScope','$stateParams', 'settings', 'categoryService', 'blockUI', 
     function ($scope, interactionService, $rootScope, $stateParams ,settings, categoryService, blockUI) { 

      var id = $stateParams.id; 
console.log(id); 

    }); 
+0

這將是有益的人想幫助有代碼段或jsbin /的jsfiddle/codepen樣品的工作示例。 – elpddev

+0

是的,這將是有幫助的。謝謝, –

回答

0

簡單的例子,也許你可以通過在每次添加一個控制器縮小問題,並建立了休息。小提琴或錯誤會有所幫助。

angular.module('myApp').config(function ($stateProvider){ 

    $stateProvider 
     .state('form', { 
     url:"/form", 
      views: { 
       "listColumn": { 
        templateUrl: "/form1.html", 
        controller:'myController1' 
        }, 
       "formColumn": { 
         templateUrl: "/form2.html" 
        } 
      } 
     }) 
}); 
0

絕對是你的控制器應在控制檯拋出一個錯誤,依賴性參數控制器注入的順序是錯的,你缺少interactionService

改變它,

warApp.controller('interactionCtlDetails', ["$scope", 'interactionService','$rootScope','$stateParams', 'settings', 'categoryService', 'blockUI', 
     function ($scope, interactionService, $rootScope, $stateParams ,settings, categoryService, blockUI) { 

    }); 
1

註釋陣列應該在同步與功能declaration.Here註釋陣列中的參數是不與在函數聲明的參數同步。

註釋數組中的第二個參數是'interactionService',但是在函數中,即'rootScope'。

嘗試用下面的控制器代碼

warApp.controller('interactionCtlDetails', ['$scope', '$rootScope', '$stateParams', 'settings', 'categoryService', 'blockUI', 
function ($scope, $rootScope, $stateParams ,settings, categoryService, blockUI) { 
     var id = $stateParams.id; 
     console.log(id); 
}); 
1
warApp.controller('interactionCtlDetails', ["$scope", '$rootScope','$stateParams', 'settings', 'categoryService', 'blockUI', 
     function ($scope, interactionService, $rootScope, $stateParams ,settings, categoryService, blockUI) { 

     var id = $stateParams.id; 
     console.log(id); 
    }); 

在上面的代碼中你有function ($scope, interactionService, $rootScope, $stateParams ,settings, categoryService, blockUI),你必須interactionService,你在你的射入段已經錯過