Hiển thị:
Trong khi angularjs của bạn đang bootstrapping, người dùng có thể thấy dấu ngoặc được đặt của bạn trong html. Điều này có thể được xử lý với ng-cloak
. Nhưng đối với tôi đây là một cách giải quyết, mà tôi không cần sử dụng, nếu tôi sử dụng ng-bind
.
Hiệu suất:
Các {{}}
là chậm hơn nhiều .
Đây ng-bind
là một chỉ thị và sẽ đặt một người theo dõi vào biến đã qua. Vì vậy, ý ng-bind
chí chỉ áp dụng, khi giá trị được thông qua thực sự thay đổi .
Các dấu ngoặc trên Mặt khác sẽ được bẩn kiểm tra và làm mới trong mỗi $digest
, ngay cả khi nó không cần thiết .
Tôi hiện đang xây dựng một ứng dụng trang lớn (~ 500 ràng buộc cho mỗi lượt xem). Thay đổi từ {{}} thành nghiêm ngặt ng-bind
đã giúp chúng tôi tiết kiệm khoảng 20% mỗi lần scope.$digest
.
Gợi ý :
Nếu bạn sử dụng một mô-đun dịch thuật như dịch góc , luôn thích chỉ thị trước chú thích dấu ngoặc.
{{'WELCOME'|translate}}
=> <span ng-translate="WELCOME"></span>
Nếu bạn cần một chức năng lọc, tốt hơn là chỉ thị, mà thực sự chỉ sử dụng bộ lọc tùy chỉnh của bạn. Tài liệu cho dịch vụ lọc $
CẬP NHẬT 28.11.2014 (nhưng có thể ngoài chủ đề):
Trong Angular 1.3x bindonce
chức năng đã được giới thiệu. Do đó, bạn có thể liên kết giá trị của một biểu thức / thuộc tính một lần (sẽ bị ràng buộc khi! = 'Không xác định').
Điều này hữu ích khi bạn không mong muốn ràng buộc của mình thay đổi.
Cách sử dụng: Đặt ::
trước ràng buộc của bạn:
<ul>
<li ng-repeat="item in ::items">{{item}}</li>
</ul>
<a-directive name="::item">
<span data-ng-bind="::value"></span>
Thí dụ:
ng-repeat
để xuất một số dữ liệu trong bảng, với nhiều ràng buộc mỗi hàng. Liên kết dịch thuật, đầu ra bộ lọc, được thực thi trong mọi bản tóm tắt phạm vi.
ngBind
thay vì{{ expression }}
nếu một mẫu được trình duyệt hiển thị trong giây lát ở trạng thái thô trước khi Angular biên dịch nó. VìngBind
là một thuộc tính thành phần, nó làm cho các ràng buộc vô hình với người dùng trong khi trang đang tải." - nhưng không có gì được đề cập về hiệu suất.