Hướng dẫn safehtml to string - safehtml thành chuỗi

1 câu trả lời

Giá trị được lưu trữ trong thuộc tính changingThisBreaksApplicationSecurity. Mà có lẽ nói đủ để không sử dụng nó.

const safeHtml = this.domSanitizer.bypassSecurityTrustHtml('
hello
'); const html = safeHtml['changingThisBreaksApplicationSecurity']; // html ===
hello
;

Tuy nhiên, bạn chỉ nên sử dụng chất khử trùng và giá trị được trả về trong mẫu của bạn:

Bây giờ Div sẽ có nội dung của HTML được chuyển vào

0

Đã trả lời ngày 7 tháng 11 năm 2018 lúc 11:32Nov 7, 2018 at 11:32

Hướng dẫn safehtml to string - safehtml thành chuỗi

Poul Kruijtpoul KruijtPoul Kruijt

66.7K11 Huy hiệu vàng140 Huy hiệu bạc141 Huy hiệu đồng11 gold badges140 silver badges141 bronze badges

1

  • TNX, tôi nghĩ rằng phải có một số cách được kết hợp hơn để nhận được giá trị :) Tôi đang gửi giá trị đó đến API, vì vậy nó có thể được lưu trong DB.

    Ngày 7 tháng 11 năm 2018 lúc 12:13

Báo cáo lỗi

Gói bị ảnh hưởng

Vấn đề được gây ra bởi gói @angular/trình duyệt nền tảng

Đây có phải là một hồi quy?

Đây là loại hồi quy - xin vui lòng xem mô tả dưới đây.

Sự mô tả

Tôi đang gặp lỗi TypeScript sau khi chuyển sang trình biên dịch Ivy:Typescript error after switching to Ivy compiler:

[Step 4/5] src/app/app.component.html(1,26): Type 'SafeHtml' is not assignable to type 'string'.

Trong lớp Angular có một thuộc tính thành viên được tuyên bố là

1:

@Component({
  selector: 'app',
  template: `
`
}) export class AppComponent { description: SafeHtml; constructor(private sanitizer: DomSanitizer) {} ngOnInit(): void { this.description = this.sanitizer.sanitize(SecurityContext.HTML, 'whatever comes from server'); } }

Vấn đề của tôi là làm thế nào để chuyển đổi

1 và
3 thành chuỗi, do đó, kiểm tra mẫu nghiêm ngặt không phát ra lỗi - Tôi muốn tránh gọi
4 trên
5 - nó sẽ hoạt động ngoài hộp - ít nhất đó là mong đợi của tôi.

Angular

1 được tuyên bố là:

/**
 * Marker interface for a value that's safe to use as HTML.
 *
 * @publicApi
 */
export declare interface SafeHtml extends SafeValue {
}

7 được định nghĩa trong lib.dom.d.ts:

interface InnerHTML {
    innerHTML: string;
}

7 là loại
9, trong khi tôi có
1.

Sinh sản tối thiểu

Cách sinh sản:

git clone https://github.com/felikf/angular-repro-safe-html.git
npm i
npm run build

🔥 Ngoại lệ hoặc lỗi


Type 'SafeHtml' is not assignable to type 'string'

🌍 Môi trường của bạn

Phiên bản Angular:


Angular CLI: 8.3.4
Node: 12.11.1
OS: win32 x64
Angular: 8.2.6
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.803.4
@angular-devkit/build-angular      0.803.6
@angular-devkit/build-optimizer    0.803.6
@angular-devkit/build-webpack      0.803.6
@angular-devkit/core               8.3.4
@angular-devkit/schematics         8.3.4
@angular/cdk                       8.2.0
@angular/cli                       8.3.4
@angular/flex-layout               8.0.0-beta.27
@angular/material                  8.2.0
@angular/material-moment-adapter   8.2.0
@ngtools/webpack                   8.3.6
@schematics/angular                8.3.4
@schematics/update                 0.803.4
rxjs                               6.5.3
typescript                         3.5.3
webpack                            4.39.2

Bất cứ điều gì khác có liên quan? Điều này xảy ra trong

[Step 4/5] src/app/app.component.html(1,26): Type 'SafeHtml' is not assignable to type 'string'.
1.
This happens during
[Step 4/5] src/app/app.component.html(1,26): Type 'SafeHtml' is not assignable to type 'string'.
1.

Cũng được hỏi ở đây: https://stackoverflow.com/questions/58265539