有角度的混合 - webpack - nomod

时间:2016-11-18 20:03:30

标签: angularjs angular webpack

我正在尝试使用angular hybrid实现webpack(使用ngupgrade),但我收到错误

  

模块' app'不可用!您要么错误拼写了模块名称,要么忘记加载它

'应用'是我的角度1模块名称,

我的angular 2 main.ts文件中的示例代码

declare var angular:any;
var adapter = new UpgradeAdapter( AppModule );

angular.module('app').directive('appComponent', adapter.downgradeNg2Component(AppComponent));
adapter.bootstrap(document.body, ['app']);

是否有人遇到类似的问题?

app.js

var app = angular.module('app', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/home');
    $stateProvider
        .state('home', {
            url: '/home',
            templateUrl: 'app/home/home.html',
            controller: 'HomeController'
        })
    });

angular 2升级文件:main.ts

import {UpgradeAdapter} from '@angular/upgrade';
import {AppComponent} from './app.component';
import {AppModule} from  './app.module';

declare var angular:any;
var adapter = new UpgradeAdapter( AppModule );
angular.module('app').directive('appComponent', adapter.downgradeNg2Component(AppComponent));
adapter.bootstrap(document.body, ['app']);

2 个答案:

答案 0 :(得分:0)

在您的main.ts文件中尝试以下代码

 import {UpgradeAdapter} from '@angular/upgrade';
 import {AppComponent} from './app.component';
 import {AppModule} from  './app.module';

 declare var angular:any;
 var adapter = new UpgradeAdapter( AppModule );
 angular.module('app',[]);
 angular.module('app').directive('appComponent',     
 adapter.downgradeNg2Component(AppComponent));
 adapter.bootstrap(document.body, ['app']);

我认为你在模块声明之前使用指令错过了你的模块的声明。

答案 1 :(得分:0)

第一次拨打angular.module时,您需要添加一系列依赖关系,这是' []'对于。之后,您可以通过调用angular.module('app')

再次获取应用模块
angular.module('app', []).directive('appComponent', adapter.downgradeNg2Component(AppComponent));