2017-04-02 87 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,你在你的射入段已经错过