首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角提供程序错误-必须定义$get工厂方法

角提供程序错误-必须定义$get工厂方法
EN

Stack Overflow用户
提问于 2016-06-30 18:43:03
回答 1查看 2K关注 0票数 1

这个咖啡脚本代码试图创建一个精确的提供程序,但是我得到了这样的消息:提供者'ItemsProvider‘必须定义$get工厂方法。

我已经设置了$get方法。知道发生了什么吗?

代码语言:javascript
复制
'use strict'

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

    app.provider 'ItemsProvider', [ ->

        this.$get = ->
                return {

                }

    ]

它无法加载以下消息:

代码语言:javascript
复制
Error: [$injector:modulerr] Failed to instantiate module logica-erp due to:
[$injector:pget] Provider 'ItemsProvider' must define $get factory method.

编辑:这是生成的javascript:

代码语言:javascript
复制
(function() {
  'use strict';
  var app;

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

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

}).call(this);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-30 19:54:56

CoffeeScript引入了语法糖衣,读者和老手都可能不太理解。将其编译到JS以查看发生了什么,这总是一个好主意。在我的实践中,隐性回报似乎是最大的麻烦制造者。

在本例中,CS代码编译为

代码语言:javascript
复制
app.provider('ItemsProvider', [
  function() {
    return this.$get = function() {
      return {};
    };
  }
]);

在这里,提供程序构造函数返回this.$get (函数)的值,而不是this对象。构造函数不应该返回任何内容(除了应该返回的罕见情况外):

代码语言:javascript
复制
app.provider('ItemsProvider', [
  function() {
    this.$get = function() {
      return {};
    };
  }
]);

小心箭头。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38130968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档