Angular $资源返回TypeError

时间:2015-09-12 14:04:49

标签: angularjs resources

您好我正在尝试使用ngResource从我的api获取一个url,并且我有一个返回资源的服务。但是,当我在控制器内部调用它时,会给出一个错误:无法读取属性'查询'未定义的。

为什么会这样?

这是我的服务:



(function() {

  var app = angular.module('test');

  app.service('ContactResource', ['$resource', function($resource) {

      return $resource('/contacts/:firstname', {firstname: '@firstname'},
        {
          'update': {method: 'PUT'}
        }
      );
  }]);

}());




这是我的控制器



(function() {

  var app = angular.module('test');

  app.controller('contactsCtrl', ['ContactResource', function($scope, Contacts, ContactResource) {
    $scope.contacts = ContactResource.query();
  }]);

}());




这是我的HTML



<table class="table table-bordered">
  <thead>
    <th>Firstname <input type="search" class="pull-right"></th>
  </thead>
  <tbody>
    <tr ng-repeat="contact in contacts">
      <td>
        <a ng-href="/{{ contact.firstname }}">{{ contact.firstname }}</a>
      </td>
    </tr>
  </tbody>
</table>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

这是你的问题:

['ContactResource', function($scope, Contacts, ContactResource)

您还需要将$scopeContacts注入数组中,如下所示:

['$scope', 'Contacts', 'ContactResource', function($scope, Contacts, ContactResource)

或者Angular会认为'ContactResource'$scope相同。