Đây là lỗi đầy đủ.Khởi tạo thành phần Vòng lặp vô hạn - Góc 2 JSPM
RangeError: Maximum call stack size exceeded
at Injector._instantiate (http://localhost:8000/build.js:36366:63)
at Injector._instantiateProvider (http://localhost:8000/build.js:36244:23)
at Injector._new (http://localhost:8000/build.js:36234:21)
at InjectorInlineStrategy.instantiateProvider (http://localhost:8000/build.js:35998:30)
at ElementDirectiveInlineStrategy.init (http://localhost:8000/build.js:35106:20)
at new AppElement (http://localhost:8000/build.js:34800:24)
at viewFactory_constructor0 (viewFactory_constructor:74:26)
at viewFactory_constructor0 (viewFactory_constructor:76:1)
at viewFactory_constructor0 (viewFactory_constructor:76:1)
at viewFactory_constructor0 (viewFactory_constructor:76:1) <app id="NG2_UPGRADE_0_app_c0">
Đây là tệp nguồn của tôi.
import 'reflect-metadata'
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
console.log('Files have started being compiled and infinite loop has begun');
var TodoCmpTest =
Component({
selector: 'todo-cmp'
})
.View({
template: `<h1>TodoCmpTest</h1>`
})
.Class({
constructor: function(){
console.log('hello');
}
});
var AppComponent =
Component({
selector: 'app',
})
.View({
template: `
<div>
<h1> Hello World </h1>
<todo-cmp></todo-cmp>
</div>
`,
directives: [TodoCmpTest]
// directives: []
})
.Class({
constructor: function() {}
});
bootstrap(AppComponent);
Việc khôi phục lại TodoCmpTest lặp đi lặp lại.
Nếu bạn trao đổi hai dòng này, nó hoạt động nhưng không tải TodoCmpTest. directives: [TodoCmpTest] // directives: []
Bạn có thể tái sản xuất lỗi này bằng cách làm như sau ...
1. git clone https://github.com/danielrasmuson/Angular2HelloWorld-StackOverflow 2. use node v5.4.0 3. jspm install 4. npm install 5. npm start
Tôi gặp sự cố tương tự, hãy thử sử dụng một tệp cho mỗi thành phần và xem có khắc phục được không. – Langley
Cảm ơn nhận xét @Langley. Có, tôi đã có nó trong nhiều tệp, nhưng tôi đã hợp nhất các tệp cho ví dụ. :/ –
Bạn đang sử dụng ng2 nào? Bạn đang sử dụng các gói được rút gọn hoặc không được rút gọn? –