角度NaNunction%2C%20got%20undefined exception

use*_*264 12 angularjs

右对齐,我希望根据单击的选项卡获得部分视图.在网上找到一些示例代码让我开始,但我无法通过示例代码找出标签

的index.html

<!doctype html>
<html ng-app="mainApp">
  <head>

  </head>
  <body>
    <div ng-view>

    </div>
     <script src="scripts/lib/angular.min.js"></script>
     <script src="scripts/lib/angular-route.min.js"></script>
     <script src="scripts/lib/bootstrap.min.js"></script>
     <script src="app.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

app.js:

var mainApp = angular.module('mainApp', ['ngRoute']);
mainApp.config(function($routeProvider){
  $routeProvider.when('/', {
    controller: 'SearchController',
    templateUrl: 'search.html'
  })
})
Run Code Online (Sandbox Code Playgroud)

Search.html

<div ng-controller="SearchController">

</div>
Run Code Online (Sandbox Code Playgroud)

SearchController:示例中的示例

angular.module('mainApp').controller('SearchController', function  ($scope, $window) {
  $scope.tabs = [
    { title:'Dynamic Title 1', content:'Dynamic content 1' },
    { title:'Dynamic Title 2', content:'Dynamic content 2', disabled: true }
  ];

  $scope.alertMe = function() {
    setTimeout(function() {
      $window.alert('You\'ve selected the alert tab!');
    });
  };
});
Run Code Online (Sandbox Code Playgroud)

错误:

[ng:areq] http://errors.angularjs.org/1.4.4/ng/areq?p0=search%2FSearchController.js&p1=not%20aNaNunction%2C%20got%20undefined
Run Code Online (Sandbox Code Playgroud)

Dan*_*ger 24

看起来它无法一起找到SearchController.您的SearchController是否在自己的文件中?如果是这样,请务必将其加载到index.html中!

所以,

 <script src="scripts/lib/angular.min.js"></script>
 <script src="scripts/lib/angular-route.min.js"></script>
 <script src="scripts/lib/bootstrap.min.js"></script>
 <script src="app.js"></script>
 <script src="path/to/controller/SearchController.js"></script>
Run Code Online (Sandbox Code Playgroud)

编辑:啊,我看到了这个问题.您尚未在app.js中定义"SearchController".

去做这个 -

在SearchController.js中,更改angular.module('mainApp')angular.module('SearchController')了解您正在创建一个角度模块,该模块还不是"mainApp"模块的一部分.

然后,在您的app.js中,执行var mainApp = angular.module('mainApp', ['ngRoute', 'SearchController']);此操作将您的控制器正确注入您的应用程序,并且路由器可以正确使用它.