AngularJS TypeError:undefined不是ng-view指令的函数

时间:2014-10-10 14:41:06

标签: javascript angularjs ng-view

我正在尝试连接一个简单的AngularJS应用程序,但我无法在我的view指令中遇到undefined is not a function错误。奇怪的是第一个视图实际加载并呈现给指令但我无法导航到我的第二个视图。控制器肯定没有运行。我不确定这里发生了什么。有什么想法吗?

Angular版本:1.2.26(与1.2.20相同的错误)

错误

TypeError: Undefined is not a function

应用代码

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

app.controller('Home', ['$scope', function ($scope) {
    console.log('Home controller hit.');
}]);

app.controller('About', ['$scope', function ($scope) {
    console.log('About controller hit.');
}]);


app.config(function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider.when('/', { templateUrl: 'SiteAssets/views/home.html', controller: 'Home' })
    .when('/home', { templateUrl: 'SiteAssets/views/home.html', controller: 'Home' })
    .when('/about', { templateUrl: 'SiteAssets/views/about.html', controller: 'About' })
    .otherwise({ redirectTo: '/' });
});

2 个答案:

答案 0 :(得分:1)

您需要将$ document注入控制器:

app.controller('About', ['$scope','$document', function ($scope, $document) {
  $document.title = 'About Us';
  console.log('About controller hit.');
}]);

它可能是抛出错误的$文档,因为如果没有注入,angular不知道它是什么。但是,此问题的错误是Error: Unknown provider:

答案 1 :(得分:0)

此问题是由我的主视图中的脚本中的错误引起的。我的第二个视图加载时仍然存在问题。感谢所有帮助我解决这个问题的人。