2014-10-10 4 views
0

Я пытаюсь подключить простое приложение AngularJS, и я не могу пройти мимо ошибки undefined is not a function в директиве my view. Странно то, что первое представление фактически загружается и отображается в директиве, но я не могу перейти к моему второму представлению. Контроллеры определенно не работают. Я не уверен, что здесь происходит. Есть идеи?AngularJS TypeError: undefined не является функцией в директиве ng-view

Угловая версия: 1.2.26 (та же ошибка с 1.2.20)

Ошибка

TypeError: Undefined is not a function

App Code

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: '/' }); 
}); 
+1

Можете ли вы предоставить [plunkr] (http://plnkr.co/) или [jsfiddle] (http://jsfiddle.net/)? – bmleite

+0

Работа над созданием скрипки. – ExceptionLimeCat

ответ

0

Эта проблема была вызвана ошибкой в ​​скрипте в моем домашнем просмотре. У меня все еще есть проблема с загрузкой второго изображения. Спасибо всем, кто помог мне в этом вопросе.

+0

Вам все равно нужно вставить $ document в контроллеры. См. [Doumentation] (https://docs.angularjs.org/api/ng/service/$document) и посмотрите пример сценария. –

+0

@JaredReeves Вы правы, но я удалил ссылку '$ document' с контроллера, поскольку это отдельная проблема. – ExceptionLimeCat

+0

Вы когда-нибудь получали плнкер или исправили все проблемы. –

1

Вам нужно впрыснуть $ в ваши контроллеры:

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

Это может быть документ $, который бросает ошибку, поскольку угловой не знает, что это такое без инъекции. Тем не менее, ошибка для этой проблемы будет Error: Unknown provider:

Смежные вопросы