Javascript angularjs路线不工作参数';CatCtrl&x27;不是函数,未定义

Javascript angularjs路线不工作参数';CatCtrl&x27;不是函数,未定义,javascript,angularjs,Javascript,Angularjs,我在app.js文件下面找到了一个 var app = angular.module('base', ['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/categories', { templateUrl: 'views/cat.view.html', controller: 'Cat

我在app.js文件下面找到了一个

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>
我使用的是
angularjs 1.4.7

我已经研究了stackoverflow的其他答案来解决这个问题,但没有一个对我有用如何解决此错误?

更新

下面是添加依赖项的方法

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

希望这能对您有所帮助。

从您的插件中可以看出您的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'
        })
}]);

猫观
var app=angular.module('base',['ngRoute']);
app.config(['$routeProvider',函数($routeProvider){
$routeProvider。
当(“/categories”{
templateUrl:'views/cat.view.html',
控制器:'CategoriesCtrl'
})
}]);

你得做两个小改动-

  • 首先,我在您的代码中没有看到任何CatCtrl。请更改此行

    angular.module('kB').controller('CategoriesCtrl',['$scope','$http'

    角度.module('kB').controller('CatCtrl',['$scope','$http','

  • 其次,由于控制器是在不同于base的模块(KB)中定义的,因此如果希望使用控制器,则需要将模块注入base

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

  • 最后一点- 由于您总是在路由中提到CatCtrl,因此无需在您的视图中再次使用它。

    这里是工作演示


    希望这可以帮助您

    在您的CatCtrl中,控制器的名称是“CategoriesCtrl”,因此在ng控制器中,它应该是ng controller=“CategoriesCtrl”我知道,它仍然不起作用。我得到了相同的错误。验证你的kb模块声明和注入。你的kb模块声明在哪里?实际上那不是kb。现在我修复了它,但仍然是相同的错误。我创建了一个plunk。请查看更新问题中的链接。我添加了依赖项,但仍然不起作用。我得到了相同的错误。我已经修复了ed 1和2分。我也从视图中删除了CatCtrl,但仍然得到相同的错误。最好创建一个plunk/JSFIDLE。您在哪里创建cat.view.html?它在主体中,这意味着它无论如何都会呈现。您的代码的基本逻辑与我的代码相同。您能告诉我您的解决方案和我的解决方案之间的区别吗?模板url不同新界
    <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'
            })
    }]);
    
    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'
        })
    }]);