如何将第三方javascript文件作为对象注入工厂

时间:2014-03-21 22:19:50

标签: angularjs

我在app \ scripts \ vendor \ 3rdparty.JS上有一个3rdparty.JS文件

angular.module('clientApp').factory('myFactory', function () {

        // HOW can I get the 3rdparty.JS file here in form of an object?

        // Public API here
        return {

        };
    });

我现在如何以对象的形式访问3rdparty库以访问其方法?

1 个答案:

答案 0 :(得分:0)

我也喜欢在角度应用中使用linq。那些linq操作可以节省时间。幸运的是,我们有一个与此相当的普通javascript库。

<{3}}中的linq.js非常棒且稳定。

如果有人可以将其移植到github中的bower包中。这将非常有用。

但是,我在下面尝试了这个并为我工作,

Plunker中的完整内容 - http://linqjs.codeplex.com/

// Add service to your module
//linq.svc.js

(function() {
  'use strict';

  angular
    .module('mymodule')
    .factory('$linq', linqService);

  function linqService() {

    return {
      getEnumerable: Enumerable
    };

    function Enumerable() {
      var Enumerable = function(getEnumerator) {
        this.GetEnumerator = getEnumerator;
      }

      ...... < Paste the remaining content here >
        ......
        ......

      // out to global
      return Enumerable;
    }
  }


})();

//Example Usage:
//mycontroller.js

(function() {
  'use strict';

  angular.module('mymodule')
    .controller('mycontroller', MyController);

  MyController.$inject = [
    '$linq'
  ];

  function MyController(
    $linq
  ) {


    var jsonArray = [{
      "user": {
        "id": 100,
        "screen_name": "d_linq"
      },
      "text": "to objects"
    }, {
      "user": {
        "id": 130,
        "screen_name": "c_bill"
      },
      "text": "g"
    }, {
      "user": {
        "id": 155,
        "screen_name": "b_mskk"
      },
      "text": "kabushiki kaisha"
    }, {
      "user": {
        "id": 301,
        "screen_name": "a_xbox"
      },
      "text": "halo reach"
    }]

    var queryResult = $linq.getEnumerable().From(jsonArray)
      .Where(function(x) {
        return x.user.id < 200
      })
      .OrderBy(function(x) {
        return x.user.screen_name
      })
      .Select(function(x) {
        return x.user.screen_name + ':' + x.text
      })
      .ToArray();

    console.log("queryResult==>", queryResult);

  }
})();

示例输出:

queryResult==> ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"]