【发布时间】:2017-03-10 00:25:19
【问题描述】:
我正在开发一个多页 Angular 应用程序。用户在页面上的选择决定了下一页的视图。
这是组件代码:
export class DataComponent implements OnInit, OnDestroy {
constructor(private _router: Router, private _activatedRoute: ActivatedRoute, private _applicationService: ApplicationService) {
this.subscription = this._activatedRoute.params
.subscribe((param: any) => {
this.applicationId = param['applicationId'];
});
}
ngOnInit(){
this._applicationService.getApplication(this.applicationId)
.subscribe(application => {this.application = application;});
}
}
在 HTML 模板中,我使用 *ngIf 评估条件
<div *ngIf="application?.flag"> Flag is true </div>
flag 是一个从数据库中获取的布尔值。
即使 boolean 的值为 true,div 也不会显示在页面上。这只发生在 Internet Explorer 中。我怀疑角度 2 的更改检测在加载 DOM 后无法刷新视图。
奇怪的是,如果我在 Internet Explorer 上打开控制台,页面会以正确的 div 正常加载。
请建议我如何解决这个问题。
我尝试使用 Resolve 实现该行为,但我仍然面临同样的问题。应用在 Chrome、Firefox、Safari 和 Edge 浏览器中完美运行,但在 Internet Explorer 中无法打开控制台。
这里是 polyfills.ts 中的条目:
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
我正在使用 webpack。
这里是解析代码:
@Injectable()
export class ApplicationResolve implements Resolve<Application>{
constructor(private _applicationService: ApplicationService){}
resolve(route: ActivatedRouteSnapshot){
return this._applicationService.getApplication(route.params['applicationId']);
}
}
这是路由模块中的入口:
{ path: 'clearData/:applicationId', component: DataComponent, resolve: {application: ApplicationResolve} }
【问题讨论】:
-
参考这个来格式化你的代码meta.stackoverflow.com/questions/251361/…
-
你添加了 Internet Explorer Polyfills 吗?
-
请提供更多代码。
-
@mickdev 我已经添加了 IE polyfills
-
将
<div *ngIf="this.application?.flag"> Flag is true </div>更改为<div *ngIf="application?.flag">Flag is true</div>看看是否能解决您的问题
标签: angular