Adding third party vendor dependencies to mean.js

狂风中的少年 提交于 2019-12-14 02:55:33

问题


I've been struggling trying to hook up this dependency (http://flowjs.github.io/ng-flow/) to my mean.js application. I'm thinking it's simply a naming problem.

The error I'm getting is: Error: [$injector:unpr] Unknown provider: flowProvider <- flow

I've tried 'flow', 'Flow', 'ngFlow', etc. Any help would be greatly appreciated.

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:

'use strict';

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'
    }
};

回答1:


So long as you loaded the js file correctly, you can use flowFactory to create a flow instance. Then create a flow object and use that to refer to flow.

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'
});
................................................................

So try changing flow to flowFactory and see if that leads to any provider dependency issues.




回答2:


I don't see an answer to this. Changing the registerModule part.

ApplicationConfiguration.registerModule('flow');

to .client.module.js

This is mean.js version 0.4.0




回答3:


you don't have to include it into your project dependency I modified it in this way :

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


来源:https://stackoverflow.com/questions/28224139/adding-third-party-vendor-dependencies-to-mean-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!