【问题标题】:Adding third party vendor dependencies to mean.js将第三方供应商依赖项添加到 mean.js
【发布时间】:2015-01-29 20:37:57
【问题描述】:

我一直在努力尝试将此依赖项 (http://flowjs.github.io/ng-flow/) 连接到我的 mean.js 应用程序。我认为这只是一个命名问题。

我得到的错误是:错误:[$injector:unpr] Unknown provider: flowProvider

我已经尝试过“flow”、“Flow”、“ngFlow”等。任何帮助将不胜感激。

modules/core/client/app/config.js

'use strict';

// Init the application configuration module for AngularJS application
var ApplicationConfiguration = (function() {
    // Init module configuration options
    var applicationModuleName = 'mean';
    var applicationModuleVendorDependencies = ['ngResource', 'ngAnimate', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload', 'flow'];

    // Add a new vertical module
    var registerModule = function(moduleName, dependencies) {
        // Create angular module
        angular.module(moduleName, dependencies || []);

        // Add the module to the AngularJS configuration file
        angular.module(applicationModuleName).requires.push(moduleName);
    };

    return {
        applicationModuleName:                applicationModuleName,
        applicationModuleVendorDependencies:  applicationModuleVendorDependencies,
        registerModule:                       registerModule
    };
})();


modules/properties/client/properties.client.controller.js:
'use strict';

var $ = $ || {};

// Properties controller
angular.module('properties').controller('PropertiesController', [
  '$scope',
  '$stateParams',
  '$location',
  'Authentication',
  'Brands',
  'Applications',
  'Properties',
  'flow',

    function($scope, $stateParams, $location, Authentication, Brands, Applications, Properties, flow) {

.......

modules/properties/client/properties.client.module.js:

'use strict';

// Use applicaion configuration module to register a new module
//ApplicationConfiguration.registerModule('properties');
ApplicationConfiguration.registerModule('properties',['flow']);

config/assets/default.js:

'使用严格';

module.exports = {
    client: {
        lib: {
            css: [
                'public/lib/bootstrap/dist/css/bootstrap.css',
                'public/lib/bootstrap/dist/css/bootstrap-theme.css'
            ],
            js: [
                'public/lib/angular/angular.js',
                'public/lib/angular-resource/angular-resource.js',
                'public/lib/angular-animate/angular-animate.js',
                'public/lib/angular-ui-router/release/angular-ui-router.js',
                'public/lib/angular-ui-utils/ui-utils.js',
                'public/lib/angular-bootstrap/ui-bootstrap-tpls.js',
                'public/lib/angular-file-upload/angular-file-upload.js',
                'public/lib/jquery/dist/jquery.js',
        'public/lib/ng-flow/dist/ng-flow-standalone.js'
            ],
            tests: ['public/lib/angular-mocks/angular-mocks.js']
        },
        css: [
            'modules/*/client/css/*.css'
        ],
        less: [
            'modules/*/client/less/*.less'
        ],
        sass: [
            'modules/*/client/scss/*.scss'
        ],
        js: [
            'modules/core/client/app/config.js',
            'modules/core/client/app/init.js',
            'modules/*/client/*.js',
            'modules/*/client/**/*.js'
        ],
        views: ['modules/*/client/views/**/*.html']
    },
    server: {
        allJS: ['gruntfile.js', 'server.js', 'config/**/*.js', 'modules/*/server/**/*.js'],
        models: 'modules/*/server/models/**/*.js',
        routes: ['modules/*[!core]/server/routes/**/*.js', 'modules/core/server/routes/**/*.js'],
        sockets: 'modules/*/server/sockets/**/*.js',
        config: 'modules/*/server/config/*.js',
        policies: 'modules/*/server/policies/*.js',
        views: 'modules/*/server/views/*.html'
    }
};

【问题讨论】:

    标签: javascript angularjs meanjs


    【解决方案1】:

    只要你正确加载了js文件,就可以使用flowFactory创建流实例。然后创建一个流对象并使用它来引用流。

    angular.module('properties').controller('PropertiesController', [
      '$scope',
      '$stateParams',
      '$location',
      'Authentication',
      'Brands',
      'Applications',
      'Properties',
      'flowFactory',
    
       function($scope, $stateParams, $location, Authentication, Brands, Applications, Properties, flowFactory) {
    
    $scope.existingFlowObject = flowFactory.create({
        target: 'http://example.com/upload'
    });
    ................................................................
    

    所以尝试将flow 更改为flowFactory,看看是否会导致任何提供程序依赖问题。

    【讨论】:

    • 向 applicationModuleVendorDependencies 添加 'flow'、'Flow' 或 'flowFactory' 给我同样的错误:“错误:[$injector:modulerr] 无法实例化模块 flowFactory,原因是:错误:[$ injector:nomod] 模块 'flowFactory' 不可用!您拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 JS 文件正确包含在页面中,但应用程序在任何控制器初始化之前中断。
    【解决方案2】:

    我没有看到这个问题的答案。更改 registerModule 部分。

    ApplicationConfiguration.registerModule('flow');

    到.client.module.js

    这是 mean.js 版本 0.4.0

    【讨论】:

      【解决方案3】:

      您不必将它包含在您的项目依赖项中 我是这样修改的:

          var applicationModuleVendorDependencies = ['ngResource', 'ngAnimate', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload'];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-30
        • 1970-01-01
        • 2013-09-03
        • 2016-05-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-09
        相关资源
        最近更新 更多