Làm cách nào để thoát dấu ngoặc nhọn để hiển thị trên trang khi sử dụng AngularJS?


97

Tôi muốn người dùng nhìn thấy các dấu ngoặc nhọn kép, nhưng Angular tự động liên kết chúng. Đây là trường hợp ngược lại của câu hỏi này khi họ muốn không nhìn thấy dấu ngoặc nhọn được sử dụng để liên kết khi trang đang tải.

Tôi muốn người dùng thấy điều này:

My name is {{person.name}}.

Nhưng Angular thay thế {{person.name}}bằng giá trị. Tôi nghĩ điều này có thể hoạt động, nhưng góc độ vẫn thay thế nó bằng giá trị:

{{person.name}}

Plunker: http://plnkr.co/edit/XBJjr6uR1rMAg3Ng7DiJ


Nếu bạn sẵn sàng sử dụng hoàn toàn một dấu phân tách khác (chẳng hạn như [[ ]]): stackoverflow.com/questions/12923521/…
Thilo

2
Cảm ơn, tôi đã thấy điều đó nhưng toàn bộ điểm thực sự là dành cho một trang mẫu hiển thị cách thức hoạt động của niềng răng và tôi muốn xem nguồn để có thể giống chính xác những gì trên trang hiển thị mẫu nếu điều đó có ý nghĩa.
Jason Goemaat


1
@MaximeLorant Đó là một vấn đề hoàn toàn khác liên quan đến việc ngăn chặn hiển thị tạm thời các dấu ngoặc nhọn khi trang đang tải, câu hỏi này là về việc để chúng hiển thị ngay cả sau khi trang đã tải và ngăn chặn các góc liên kết với chúng.
Jason Goemaat

Câu trả lời:


147
<code ng-non-bindable>{{person.name}}</code>

Documentation @ ngNonBindable


6
Bạn cũng có thể sử dụng <div> hoặc bất kỳ thẻ nào, chỉ cần thêm ng-non-bindable
Mike Pugh

5
điều gì sẽ xảy ra nếu {{value}}bên trong giá trị thẻ đầu vào?
Timo Huovinen

@TimoHuovinen, để xuất dấu ngoặc nhọn trong thuộc tính HTML, hãy xem câu trả lời của tôi .
joeytwiddle

@TimoHuovinen Bạn có thể sử dụng ng-non-bindabletrong phần tử vùng chứa, bạn có thể xem câu trả lời của tôi: stackoverflow.com/a/42511222/1407491
Nabi KAZ

Điều này hiện không hoạt động; sử dụng Angular 8. Tuy nhiên, câu trả lời của @joeytwiddle đã làm được.
JE Carter II

28

Chỉnh sửa: thêm \ gạch chéo giữa các dấu ngoặc vuông bên trong dấu ngoặc kép hoạt động

{{  "{{ person.name }\}"   }}  

điều này cũng vậy .. bằng cách chuyển thông dịch góc cạnh

{{ person.name }<!---->}

cái này nữa ..

{{ person.name }<x>} 

{{ person.name }<!>}

Cho tôi mộtLexer Error
Jason Goemaat

1
{{'{{' asd '}}'}} còn anh ấy
bh_earth0

4
Đây là câu trả lời muộn cho một câu hỏi có câu trả lời được chấp nhận. Nếu bạn chọn cung cấp một câu trả lời mới, bạn nên thực hiện các biện pháp phòng ngừa bổ sung để đảm bảo giải pháp hoạt động và phải cung cấp lý do thuyết phục tại sao câu trả lời này được ưu tiên hơn câu trả lời được chấp nhận rộng rãi. Ngoài ra, điều này không trực tiếp trả lời câu hỏi.
Yêu cầu

Thích cho cái này {{...}<!---->}.
ROMANIA_engineer

11

Trong trường hợp của chúng tôi, chúng tôi muốn trình bày dấu ngoặc nhọn trong trình giữ chỗ, vì vậy chúng cần xuất hiện bên trong thuộc tính HTML . Chúng tôi đã sử dụng cái này:

 <input placeholder="{{ 'Hello {' + '{person.name}' + '}!' }}" ...>

Như bạn có thể thấy, chúng tôi đang tạo một chuỗi từ ba chuỗi nhỏ hơn, để giữ cho các dấu ngoặc nhọn được phân tách.

'Hello {' + '{person.name}' + '}!'

Điều này tránh sử dụng ng-non-bindableđể chúng tôi có thể tiếp tục sử dụng ng-các thuộc tính ở nơi khác trên phần tử.


Hoạt động (gần đây là góc 8).
JE Carter II

3

Sử dụng ng-non-bindabletrong vùng chứa, điều này có hiệu lực trên tất cả các phần tử bên trong vùng chứa ở đây.

<div ng-non-bindable>
  <span>{{person.name}}</span>
  <img src="#" alt="{{person.name}}">
  <input placeholder="{{person.name}}">
</div>


1

Đã cập nhật cho Angular 9

Sử dụng ngNonBindableđể thoát ràng buộc nội suy.

<div ngNonBindable>
  My name is {{person.name}}
</div>

1

Tôi muốn có một dấu ngoặc đơn trên văn bản và các giải pháp trên không phù hợp với tôi. Vì vậy, đã muốn Angular được đề xuất.

Phiên bản Angular: 5

Nội dung Bắt buộc: Tên tôi là {person.name}.

<span>My name is {{'{'}}person.name{{'}'}}.</span>

Tôi hi vọng nó giúp ích cho ai đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.