2016-12-14 48 views
0

我在JavaScript(ES5)中编写Angular 2应用程序,并且我的生命周期挂钩未被框架调用。Angular 2生命周期挂钩未调用(ES5 javascript)

附件包括:包含ngOnInit,index.html,app组件,app模块,main.js的示例组件。 'all.min.js'是我用uglifyJS生成的所有Angular应用程序js文件的文件。

预期的结果是要调用该组件的ngOnInit并打印控制台消息'ngOnInit'。 Chrome控制台中未显示任何消息。

index.html的(缩短为了简洁):

<!DOCTYPE html> 
<html> 
<body> 
<app>Loading...</app> 
<script src="/app/assets/javascript/angular/Rx.js"></script> 
<script src="/app/assets/javascript/angular/core.umd.js"></script> 
<script src="/app/assets/javascript/angular/common.umd.js"></script> 
<script src="/app/assets/javascript/angular/compiler.umd.js"></script> 
<script src="/app/assets/javascript/angular/platform-browser.umd.js"></script> 
<script src="/app/assets/javascript/angular/platform-browser-dynamic.umd.js"></script> 
<script src="/app/assets/javascript/angular/forms.umd.js"></script> 
<script src="/app/assets/javascript/angular/shim.min.js"></script> 
<script src="/app/assets/javascript/angular/Reflect.js"></script> 
<script src="/app/assets/javascript/angular/zone.js"></script> 
<script src="/app/assets/javascript/angular/system.js"></script> 
<script src='/app/ng_app/all.min.js'></script> 
</body> 
</html> 

app.component.js:

(function(app) { 
    app.AppComponent = 
    ng.core.Component({ 
     selector: 'app', 
     template: '<brief></brief>' 
    }) 
    .Class({ 
     constructor: function() { 

     } 
    }); 
})(window.app || (window.app = {})); 

app.module.js:

(function(app) { 
    app.AppModule = 
     ng.core.NgModule({ 
      imports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule], 
      declarations: [app.AppComponent, 
       app.BriefComponent 
      ], 
      bootstrap: [app.AppComponent] 
     }) 
     .Class({ 
      constructor: function() {} 
     }); 
})(window.app || (window.app = {})); 

样品组分(简要组件):

(function(app) { 
    app.BriefComponent = 
     ng.core.Component({ 
      selector: 'brief', 
      templateUrl: 'ng_app/brief/brief.component.html' 
      ] 
     }) 
     .Class({ 
      constructor: function() { 
      }, 
      ngOnInit: function() { 
       console.log('ngOnInit brief'); 
      } 
}); 
})(window.app || (window.app = {})); 

main.js:

(function(app) { 
    document.addEventListener('DOMContentLoaded', function() { 
    ng.platformBrowserDynamic 
     .platformBrowserDynamic() 
     .bootstrapModule(app.AppModule); 
    }); 
})(window.app || (window.app = {})); 

回答

1

原来我只是忽视添加生命周期挂钩,我的代码后重新生成all.min.js文件。

相关问题