angularjs:自定义资源

时间:2014-04-24 04:38:08

标签: angularjs angularjs-service

我在我的应用

中关注https://github.com/StarterSquad/startersquad.github.com/tree/master/examples/angularjs-requirejs-2文件夹结构

内部服务我添加了以下代码

 define(['./module'], function(services) {
'use strict';
services.factory('CreditCard', ['$http', function($http) {

function CreditCardFactory() {

    function parseMessage(message) {
        if (message.response) {
            return message.response;
        }
    }

    function CreditCard(value) {
        angular.copy(value || {}, this);
    }

    CreditCard.$get = function(id) {
        var value = this instanceof CreditCard ? this : new CreditCard();
        $http({
            method: 'GET',
            url: '/creditcards/' + id
        }).then(function(response) {
            var data = response.data;
            if (data) {
                angular.copy(parseMessage(data), value);
            }
        });
        return value;
    };

    CreditCard.prototype.$get = function(id) {
        CreditCard.$get.call(this, id);
    };

    return CreditCard;

  }

return CreditCardFactory;

}]);


});

我已按照此问题在工厂

中添加了上述代码

Angularjs - customizing $resource

在这个问题中         app.controller('CreditCardCtrl',函数($ scope,CreditCard){           $ scope.creditCard = CreditCard()。get(3);        }); 添加CreditCard时不添加依赖项,因为我们添加了诸如$ scope和$ http。

之类的defualt角度服务

如果我不添加依赖                controllers.controller('myListCtrl',['Phone','Phone1','loginForm','$ scope','$ http','user_resources',function(Phone,Phone1,loginForm,$ scope,$ http,user_resources) ,信用卡){  然后它给undefined,如果我在我的控制器中添加它作为依赖,然后尝试调用get函数然后不返回响应

     controllers.controller('myListCtrl',    ['Phone','Phone1','loginForm','$scope','$http','CreditCard',function(Phone,Phone1,loginForm,userSrv,$scope,$http,user_resources,CreditCard){

1 个答案:

答案 0 :(得分:1)

在此示例中,

'CreditCard'未被声明为依赖项,因此它未被注入且为undefined ...

controllers.controller('myListCtrl', ['Phone','Phone1','loginForm','$scope','$http','user_resources',
    function(Phone,Phone1,loginForm,$scope,$http,user_resources,CreditCard){

要解决此问题,请添加'CreditCard' ...

controllers.controller('myListCtrl', ['Phone','Phone1','loginForm','$scope','$http','user_resources','CreditCard',
    function(Phone,Phone1,loginForm,$scope,$http,user_resources,CreditCard){

在第二个示例中,缺少某些依赖项,导致其他依赖项与函数参数相比处于错误的顺序...

controllers.controller('myListCtrl', ['Phone','Phone1','loginForm','$scope','$http','CreditCard',
    function(Phone,Phone1,loginForm,userSrv,$scope,$http,user_resources,CreditCard){

以正确的顺序添加缺少的依赖项...

controllers.controller('myListCtrl', ['Phone','Phone1','loginForm','userSrv','$scope','$http','user_resources','CreditCard',
    function(Phone,Phone1,loginForm,userSrv,$scope,$http,user_resources,CreditCard){