angularjs - 使用 Require.js 在 Angular 中创建服务

标签 angularjs requirejs

我正在准备一个将使用 AMD (require.js) 的锅炉 Angular 应用程序。到目前为止,我已经开始工作了,但是我在服务方面遇到了问题。我如何合并服务?

这是 Main.js:

require.config({  

paths: {
// These are the core components - without which our application could not run
angular: '../lib/angular/angular',
angularResource: '../lib/angular/angular-resource',

// These are components that extend our core components
jquery: '../lib/jquery/jquery-1.8.2.min',
bootstrap: '../lib/bootstrap/js/bootstrap',
underscore: '../lib/underscore/underscore',

text: '../lib/require/text'  

},
  shim: {
    'angular' : {'exports' : 'angular'},
    'angular-resource' : {deps:['angular']},
    'bootstrap': {deps:['jquery']},
    'underscore': {exports: '_'}
  },
  priority: [
    "angular"
  ],
  urlArgs: 'v=1.1'
});

require( [
  'angular',
  'app',
  'services/services',
  'services/dateGetter',
  'controllers/controllers',
  'controllers/navbar',
  'controllers/exampleTemplateController',
  'filters/filters',
  'directives/directives',
  'routes'
], function(angular, app) {

  angular.element(document).ready(function () {
    angular.bootstrap(document, ['myApp']);
  });
});

这就是我开发 Controller 的方式:

define([
    'app',
    '../helpers/exampleFile'  //example of importing custom file.js in our controller.
],

function(app, exampleFile) {

    'use strict';
    return app.controller('exampleTemplateController', [
        '$scope', 'dateGetter',
        function ($scope ) {
            $scope.sayHello = function(module) {

              alert("Current Date: " + dateGetter.getCustomDate + " " + exampleFile(module.name));

            }
        }
    ]);
});

这就是我尝试开发服务的方式(这里惨败):

 define([
    'app'
],

function(app) {
        'use strict';
                debugger;
        return app.factory('dateGetter', [
            '$scope',
            function ($scope ) {
                $scope.getCustomName = function() {
                    return "THIS IS MY NAME";
                }
            }
        ]);
    });

我想我很接近,但有些东西让我望而却步。

另一个问题是,如果我最终有很多 Controller 和服务,我们将...我是否需要在 main.js 文件中列出每个 Controller 和服务(在 require: 下)?

最佳答案

我现在可以使用该服务了。这都是我的错。现在就在这里,我可以访问并使用它。

define([
    'app'
],

function(app) {
    return app.factory('serviceExample', function ( ) {

          return {
              nameOfMethod: function () {
                  return "Is this working";
              }
          }
        }
    );
});

我现在想知道...我是否需要在 Angular 中使用 required?

我看过很多讨论同一个问题的帖子,但没有简明的回答。 我正在考虑使用 require,因为我们之前使用过它,而且这个应用程序无论如何都会变成一个大问题。

意见?

关于angularjs - 使用 Require.js 在 Angular 中创建服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723486/

相关文章:

javascript - 在 ng-click 范围之外调用 javascript 函数

angularjs - Ionic - 当凭据标志为真时,不能在 '*' header 中使用通配符 'Access-Control-Allow-Origin'

testing - 如何使用 RequireJS 加载模块以在像 Jasmine 这样的测试框架中进行测试?

javascript - 使用 require.js 全局设置 lodash/underscore 模板设置

angularjs - 在 AngularJS Factory 中使用 Getter/Setter 方法

javascript - 使用 ngAnimate 隐藏表格中的一行

javascript - 如何获取用 $sce 包装的对象的未包装值?

javascript - RequireJS - 无法访问外部模块功能

javascript - 如何判断4个并行的 "require"回调是否全部完成?

javascript - 将脚本与 requirejs 解耦/防止 adBlocker 停止下载