2015-09-12 109 views
0

你好我想從我的api使用ngResource獲得一個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>

回答

1

這裏是你的問題:

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

您還需要注入$scopeContacts到數組,像這樣:

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

或角意志認爲'ContactResource'我與$scope相同。

+0

非常感謝。這解決了它。很好的解釋。 – pap