在Angular2部件我有以下空:Angular2表示IE
<div ng-if="heading" [innerHTML]="heading"></div>
鉻& Safari瀏覽器很好地工作 - 但IE是表示在DIV null
。我不知道爲什麼...標題是undefined
,仔細檢查!
在Angular2部件我有以下空:Angular2表示IE
<div ng-if="heading" [innerHTML]="heading"></div>
鉻& Safari瀏覽器很好地工作 - 但IE是表示在DIV null
。我不知道爲什麼...標題是undefined
,仔細檢查!
正確的語法在Angular2應該是
<div *ngIf="heading" [innerHTML]="heading"></div>
我簡直不敢相信那是那麼簡單.....謝謝。 任何想法爲什麼ng-if在Chrome中工作? – Silver
我想鉻仍然支持Angular 1風格&對於IE,你需要添加額外的polyfill ... 你可以接受這個答案,如果它有幫助:p –
它不適用於Chrome或Safari。當標題未定義時,它們不會放入IE所做的「空白」。如果您查看了元素面板,那麼當您使用ng-if時,您會看到內容仍然存在。 –
它是*ngIf
<div *ngIf="heading" [innerHTML]="heading"></div>
Angular2 NgIf語法:
<div *ngIf="condition">...</div>
<div template="ngIf condition">...</div>
<template [ngIf]="condition"><div>...</div></template>
實施例:
<div *ngIf="errorCount > 0" class="error">
<!-- Error message displayed when the errorCount property in the current context is greater than 0. -->
{{errorCount}} errors detected
</div>
對於那些誰不喜歡,你必須做ngIf每當innerHTML的可能是不確定的事實,這裏的跨您的應用程序解決了一個解決方案:
constructor(sanitize: DomSanitizer) {
// override the sanitize method so that it returns an empty string instead of null so that IE doesn't show "null" in the DOM
sanitize.sanitize = function(context: SecurityContext, value: SafeValue | string | null) {
return (sanitize as any).__proto__.sanitize.call((sanitize as any), context, value) || '';
};
}
我把這個在app 。模塊構造函數。
你可能會問,「爲什麼這樣一個hacky的方法?」這很大程度上是因爲DomSanitizer是一個充當類的接口。真正的衛生處理髮生在未公開暴露的DomSanitizerImpl類中。
你目前用於IE的什麼polyfill?通常你至少需要核心js。 –
用* ngIf =「heading」代替它 –