Angularjs在路由定义中使用injectect模块的控制器

时间:2014-11-30 10:15:40

标签: angularjs angularjs-routing angularjs-module

我是棱角分明的新手,我正试图将我的应用程序模块化。

我的主模块获得了一些其他模块,我想在路由定义中使用注入模块的控制器。 一些简单的例子非常有用!

这不起作用:

var app = angular.module('Contacting_App', ['LeadLookup']);

app.config(['$routeProvider', function($routeProvider) {
                    $routeProvider.
                        when('/main', 
                            {controller: 'MainCtrl', 
                            templateUrl: 'apex/f42_Contacting_Main'}
                        ).
                        when('/lead', 
                            {module: 'LeadLookup',
                            controller: 'LeadLkpCtrl', 
                            templateUrl: 'apex/f42_Lead_Lookup'}
                        ).
                        otherwise(
                            {redirectTo: '/main'}
                        );
                }]);

1 个答案:

答案 0 :(得分:0)

本教程页面可能指向正确的方向docs.angularjs.org/tutorial/step_07

您应该关注的主要内容是:

模块

var phonecatApp = angular.module('phonecatApp', [
  'ngRoute',
  'phonecatControllers'
]);

routeProvider

phonecatApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/phones', {
        templateUrl: 'partials/phone-list.html',
        controller: 'PhoneListCtrl'
      }).
      when('/phones/:phoneId', {
        templateUrl: 'partials/phone-detail.html',
        controller: 'PhoneDetailCtrl'
      }).
      otherwise({
        redirectTo: '/phones'
      });
  }]);

控制器

var phonecatControllers = angular.module('phonecatControllers', []);

phonecatControllers.controller('PhoneListCtrl', ['$scope', '$http',
  function ($scope, $http) {
    $http.get('phones/phones.json').success(function(data) {
      $scope.phones = data;
    });

    $scope.orderProp = 'age';
  }]);

phonecatControllers.controller('PhoneDetailCtrl', ['$scope', '$routeParams',
  function($scope, $routeParams) {
    $scope.phoneId = $routeParams.phoneId;
  }]);