未定义的控制器AngularJS

时间:2015-03-21 12:04:32

标签: javascript angularjs

我的模板正在加载,但是我收到一个错误,控制器是未定义的。控制器确实存在于我的源中,恰好位于定义的位置。这段代码有什么问题?

Error: [ng:areq] http://errors.angularjs.org/1.2.14/ng/areq?p0=ItemsController&p1=not%20aNaNunction%2C%20got%20undefined
    at Error (native)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js:6:450
    at xb 

这是我的HTML:

<div ng-app="myApp">
  <ul ng-controller="ItemsController" class="nav">
    <input type="text" value="ItemName" ng-model="newItemName" placeholder="name of new item...">
    <button ng-click="addItem()">Add Me</button>
    <li ng-repeat="item in items.data" id="item{{item.id}}">
      <a href="#">{{item.title}}</a> 
      <a ng-click="deleteItem($index)" class="fa fa-trash-o"></a>
    </li>
  </ul>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular-route.js"></script>
<script type="text/javascript" src="js/te.js"></script>

'use strict';
var myApp = angular.module("myApp", []);
myApp.factory("items ", function() {
  var items = {};
  items.data = [];
  return items;
});
myApp.controller("ItemsController", function ItemsController($scope, items) {
  $scope.items = items;
  $scope.deleteItem = function(index) {
    items.data.splice(index, 1);
  }
  $scope.addItem = function(index) {
    items.data.push({
      id: $scope.items.data.length + 1,
      title: $scope.newItemName
    });
  }
});

2 个答案:

答案 0 :(得分:1)

我在您的代码中看到的唯一问题是以下行:

myApp.factory("items ", function() {
工厂名称&#34;项目&#34; 中的

空间,您将作为项目注入控制器。

以下是您的代码的工作PLNKR,证明其工作正常。

快乐帮助!

答案 1 :(得分:0)

我多次遇到过这个问题,通常这是因为你没有在模板中包含你的js。

如果不是这样,那么如果您可以分享您的部分代码,那么只有任何人都能够正确回答。