Khi xác định chỉ thị ng-lặp để lặp qua một mảng, cú pháp chỉ định ng-repeat="friend in friends"
, và sau đó trong khuôn mẫu bạn sử dụng toán tử tương ứng như vậy {{friend.name}}
.Tôi có thể tránh tên biến đối tượng trong vòng lặp ng-lặp không?
Có thể có các thuộc tính được chỉ định cho phạm vi mục hiện tại, chứ không phải là biến trong đó không? Vì vậy, tôi có thể gọi chỉ {{name}}
thay vì {{friend.name}}
?
Lý do là chỉ thị của tôi đang được sử dụng trong phạm vi của hai mẫu khác nhau - ví dụ: tôi có thể có chỉ thị "userActions"
được sử dụng trong cả bộ lặp và bên trong mẫu không liên quan ở đâu {{friend.name}}
giác quan. Tôi muốn tránh giả tạo đối tượng friend
ở nơi nó không có ý nghĩa ngữ nghĩa.
trường hợp sử dụng của tôi là một cái gì đó như thế này:
Tôi có một mạng lưới mà ám khối các loại. Một số mã giả:
<div ng-repeat="block in blocks">
< cat block />
< friend block >
<userActions directive />
</ friend block >
< guitar block />
.... more blocks
</div>
Tôi cũng có một trang người bạn, có chứa các hành động cùng một người dùng chính xác:
..fragment of friend page..
<element ng-control="friend">
<userActions directive />
</element>
Bây giờ, nếu tôi muốn sử dụng một tài sản của khối bên trong lặp lại, các cú pháp là {{block.name}}
. Vì vậy, các mẫu cho userActions
chứa này.
Tuy nhiên, khi tôi sử dụng mẫu này trong trang bạn bè, tôi phải tạo {{block.name}}
bên trong phạm vi của bộ điều khiển của bạn bè. Điều này không có ý nghĩa mặc dù, bởi vì khối chỉ tồn tại trong bối cảnh của lưới khối. Tôi không cần phải tạo số này block
.
Điều tôi muốn làm, chỉ cần gọi {{name}}
từ trong mẫu chỉ thị userActions
vì cả phạm vi khối và bộ điều khiển đều chứa nó. Tôi không muốn tạo đối tượng block
, sau đó đặt một cách giả tạo block.name
trong mỗi phạm vi mà tôi muốn sử dụng chỉ thị userActions
.
Dưới đây là một jsFiddle to illustrate the cause
Tôi giả định ở đây rằng ví dụ bạn đã cung cấp chỉ nhằm mục đích minh họa và những gì bạn đang cố gắng phức tạp hơn? Có lẽ bạn có thể mô tả những gì bạn đang cố gắng để làm gì? Nên có một cái gì đó phổ biến ở giữa người bạn và khối - vâng? Hoặc người nào khác nó không có nghĩa là bạn đang sử dụng cùng một khuôn mẫu cho cả hai. – ganaraj
Btw ở đây là một câu đố giải quyết vấn đề của bạn. Không chắc chắn nếu đó là những gì bạn đang tìm kiếm. Bạn cần lưu ý rằng chúng ta đang tạo ra một phạm vi cô lập. http://jsfiddle.net/b7KEm/6/ – ganaraj
Vâng fiddle chỉ đại diện cho một ví dụ giảm của vấn đề. Rõ ràng ứng dụng của tôi phức tạp hơn nhiều :) Hãy để tôi xây dựng - Khối thể hiện quan điểm của một số thực thể có thể. Một trong những thực thể này là "bạn". Mỗi thực thể bạn bè có một tập hợp các hành động của người dùng có thể được liên kết với nó. Ví dụ của chúng ta - hành động là "giết" và "ôm". Những hành động này có thể được thực hiện từ * cả * ngữ cảnh của khối bạn bè cũng như trang bạn bè. Chúng chứa cùng một khuôn mẫu và logic và do đó chia sẻ cùng một chỉ thị. – OpherV