2016-06-30 1 views
1

Ce code de script de café essaye de créer un fournisseur angulaire mais j'obtiens le message suivant: Le fournisseur 'ItemsProvider' doit définir la méthode $ get factory.

J'ai la méthode $ get définie. Une idée de ce qui se passe?

'use strict' 

    app = angular.module('logica-erp') 

    app.provider 'ItemsProvider', [ -> 

     this.$get = -> 
       return { 

       } 

    ] 

Il ne parviennent pas à charger avec ce message:

Error: [$injector:modulerr] Failed to instantiate module logica-erp due to: 
[$injector:pget] Provider 'ItemsProvider' must define $get factory method. 

EDIT: Ceci est le javascript généré:

(function() { 
    'use strict'; 
    var app; 

    app = angular.module('logica-erp'); 

    app.provider('ItemsProvider', [ 
    function() { 
     return this.$get = function() { 
     return {}; 
     }; 
    } 
    ]); 

}).call(this); 

Répondre

1

CoffeeScript introduit revêtement de sucre de syntaxe qui peut être mal comprise par les lecteurs et les adeptes. C'est toujours une bonne idée de le compiler à JS pour voir ce qui se passe. Les retours implicites semblent être les plus grands fauteurs de troubles dans ma pratique.

Dans ce cas, le code CS est compilé à ce

app.provider('ItemsProvider', [ 
    function() { 
    return this.$get = function() { 
     return {}; 
    }; 
    } 
]); 

fonction constructeur de fournisseur Ici retourne une valeur de this.$get (fonction) et non this objet. La fonction de constructeur ne devrait rien retourner (sauf dans les rares cas où cela devrait être le cas):

app.provider('ItemsProvider', [ 
    function() { 
    this.$get = function() { 
     return {}; 
    }; 
    } 
]); 

Attention aux flèches.

+0

Merci, le résultat des retours implicites –

+0

Pouvez-vous fournir le code CoffeeScript qui compile vers le second extrait? – cjbrooks12

+0

@ cjbrooks12 Je ne parle pas de café. Heureusement, il existe un [service de traduction] (http://js2.coffee/#try:app.provider%28%27ItemsProvider%27%2C%20 [% 0A% 20% 20function% 28% 29% 20 {% 0A % 20% 20% 20% 20% 20% 20% 3D% 20fonction% 28% 29% 20 {% 0A% 20% 20% 20% 20% 20% 20return% 20 {}% 3B% 0A% 20% 20 % 20% 20}% 3B% 0A% 20% 20}% 0A]% 29% 3B) – estus