且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

添加第三方供应商的依赖,以mean.js

更新时间:2023-11-30 13:15:58

只要您加载的JS文件正确,则可以使用 flowFactory 来创建一个流程实例。然后创建一个流对象,并用它来指流动。

  angular.module(属性)。控制器('PropertiesController',[
  '$范围',
  '$ stateParams',
  '$位置',
  认证,
  '品牌',
  应用程序,
  '属性',
  flowFactory',   功能($范围,$ stateParams,$位置,认证,品牌​​,应用,性能,flowFactory){$ scope.existingFlowObject = flowFactory.create({
    目标:http://example.com/upload
});
.................................................. ..............

因此​​,尝试改变流量 flowFactory 键,看看是否导致任何供应商的依赖问题。

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

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.