0

単純な AngularJS アプリを接続しようとしていundefined is not a functionますが、ビュー ディレクティブでエラーを回避できません。奇妙なことに、最初のビューが実際にロードされ、ディレクティブにレンダリングされますが、2 番目のビューに移動できません。コントローラーは間違いなく実行されていません。ここで何が起こっているのかわかりません。何か案は?

Angular バージョン: 1.2.26 (1.2.20 と同じエラー)

エラー

TypeError: Undefined は関数ではありません

アプリコード

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

2 に答える 2

1

次のように $document をコントローラーに挿入する必要があります。

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

angularはインジェクションなしではそれが何であるかを知らないため、エラーをスローしているのは $document である可能性があります。ただし、この問題のエラーはError: Unknown provider:

于 2014-10-10T15:14:13.633 に答える
0

この問題は、ホーム ビュー内のスクリプトのエラーが原因でした。2 番目のビューの読み込みにまだ問題があります。この問題で私を助けてくれたすべての人に感謝します。

于 2014-10-10T15:21:16.307 に答える