load.sequence.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * Created by jiaoyumin on 16/9/28.
  3. */
  4. (function () {
  5. // Setting up route
  6. angular.module('push').factory('LoadJsService', LoadJsService);
  7. LoadJsService.$inject = ['JS_REQUIRE', '$ocLazyLoad', '$q'];
  8. function LoadJsService(jsRequires, $ocLL, $q) {
  9. return {
  10. loadSequence: function () {
  11. var _args = arguments;
  12. var viewArgs = repeatArgs(_args[0]);
  13. //先匹配模块的,没有再匹配单文件的
  14. if (viewArgs) {
  15. _args = viewArgs
  16. } else {
  17. //console.log("没有找到模块?")
  18. }
  19. function repeatArgs(name) {
  20. return jsRequires.ViewArgs[name];
  21. }
  22. function promiseThen(_arg) {
  23. if (typeof _arg == 'function')
  24. return promise.then(_arg);
  25. else
  26. return promise.then(function () {
  27. var nowLoad = requiredData(_arg);
  28. if (!nowLoad)
  29. return console.log('找不到文件 [' + _arg + ']');
  30. return $ocLL.load(nowLoad);
  31. });
  32. }
  33. function requiredData(name) {
  34. if (jsRequires.modules)
  35. for (var m in jsRequires.modules)
  36. if (jsRequires.modules[m].name && jsRequires.modules[m].name === name)
  37. return jsRequires.modules[m];
  38. return jsRequires.scripts && jsRequires.scripts[name];
  39. }
  40. var promise = $q.when(1);
  41. for (var i = 0, len = _args.length; i < len; i++) {
  42. promise = promiseThen(_args[i]);
  43. }
  44. return promise;
  45. }
  46. }
  47. }
  48. }());