2015-11-03 62 views
0

下面我app.js文件angularjs路線行不通參數 'CatCtrl' 不是一個函數,得到了不確定

var app = angular.module('base', ['ngRoute']); 

app.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
     when('/categories', { 
      templateUrl: 'views/cat.view.html', 
      controller: 'CatCtrl' 
     }) 
    }]); 

下面是CatCtrl.js文件

angular.module('base').controller('CatCtrl', ['$scope', '$http', function ($scope, $http) { 
    $http.get('/categories').success(function (data) { 
     $scope.categories = data; 
    }); 
}]); 

這裏是cat.view html的

<div ng-controller="CatCtrl"> 
    <div class="row"> 
     <div class="categories"> 
       Cats View 
     </div> 
    </div> 
</div> 

我已經添加ng-app="base"到我的index.html文件。

我歌廳以下錯誤

Error: [ng:areq] Argument 'CatCtrl' is not a function, got undefined 

我使用angularjs 1.4.7

我已經看過其他答案在stackoverflow解決這個問題,但他們都沒有爲我工作。 我該如何解決這個錯誤?

UPDATE

這裏是Plunk

+0

在CatCtrl控制器的名字是 'CategoriesCtrl' 所以在你的NG-控制器,它MUSE爲NG -controller =「CategoriesCtrl」 – Vicruz

回答

0

添加像

var app = angular.module('base', ['ngRoute', 'kB']); 

希望這會幫助你的依賴。

+0

我添加了依賴項,但仍然無效。我得到同樣的錯誤。 – 2619

0

從你的plunker,你可以看到你的templateUrl是錯誤的,它必須是你的.html文件的路徑。

編輯:問題編輯名稱 - >

你的控制器的名稱是 'CategoriesCtrl'。 「CatCtrl」僅僅是名稱的文件的 ,你會在index.html的包括

<div ng-controller="CategoriesCtrl"> 
    <div class="row"> 
     <div class="categories"> 
       Cats View 
     </div> 
    </div> 
</div> 


var app = angular.module('base', ['ngRoute']); 

app.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
     when('/categories', { 
      templateUrl: 'views/cat.view.html', 
      controller: 'CategoriesCtrl' 
     }) 
}]); 
+0

我知道,它仍然不起作用。我得到同樣的錯誤。 – 2619

+0

然後驗證您的kb模塊聲明和注入。 – ThibaudL

+0

你的kb模塊在哪裏申報? – ThibaudL

0

你得把兩個小的變化 -

  1. 首先,我沒有看到任何CatCtrl在code.Change此行

    angular.module( 'KB')。控制器( 'CategoriesCtrl',[ '$範圍', '$ HTTP',

    angular.module( 'KB')。控制器( 'CatCtrl',[ '$範圍', '$ HTTP',

  2. 第二,由於控制器在不同的模塊中定義(KB),則需要將模塊注入基礎,您希望使用控制器的模塊爲

    var app = angular。模塊('base',['ngRoute','kB']);

末點 - 既然你alrady提CatCtrl路由,無需在您的視圖中再次使用它。

+0

我已經修復了1點和2點。我也從視圖中刪除CatCtrl,我仍然得到相同的錯誤。 – 2619

+0

更好地創建一個plunk/jsfiddle。 – Rabi

+0

我創建了一個plunk。請參閱更新的問題。 – 2619

0

這裏的工作演示

http://dojo.telerik.com/EFUJo

var app = angular.module('base', ['ngRoute']); 
angular.module('base').controller('CategoriesCtrl', ['$scope', '$http', function ($scope, $http) { 
$http.get('/categories').success(function (data) { 
    $scope.categories = data; 
}); 
}]); 

app.config(['$routeProvider', function ($routeProvider) { 
$routeProvider. 
    when('/categories', { 
     templateUrl: 'views/cat.view.html', 
     controller: 'CategoriesCtrl' 
    }) 
}]); 

希望這可以幫助你

+0

你在哪裏創建cat.view.html?它在身體裏意味着它會呈現。 – 2619

+0

請參閱更新的問題。我創造了一個龐然大物。 – 2619

+0

是的,它現在會在您的代碼中嘗試 –

相關問題