Tôi đang cố gắng sử dụng ng-include với ng-init để tái sử dụng cùng một thành phần bằng cách chỉ thay đổi dữ liệu của nó.Nhiều vấn đề phạm vi ng-init
Mã thành phần ("slider.html", mà không có người điều khiển) trông như thế này:
<div ng-repeat="person in persons">
{{person.name}}
</div>
Từ giao diện chính, tôi muốn sử dụng lại cùng một thành phần thay đổi "người" danh sách như vậy trong xem tôi có:
<!--slider #1 -->
<div ng-init="persons=english" ng-include ="'inc/app/views/widgets/slider.html'"></div>
<!-- slider #2 -->
<div ng-init="persons=german" ng-include ="'inc/app/views/widgets/slider.html'"></div>
và trong bộ điều khiển tôi khởi tạo 2 danh sách "tiếng anh" và "Đức" như thế này:
$scope.english = records.filter(function(t){return t.nationality=="english";});
$scope.german = records.filter(function(t){return t.nationality=="german";});
Điều gì xảy ra là 2 thành phần hiển thị cùng một danh sách dữ liệu (tiếng Đức); là có một cách để ràng buộc 2 bộ khác nhau cho các thành phần?
Trông giống như một trường hợp tốt để tạo phụ tùng thanh trượt của bạn như là một chỉ thị tùy chỉnh chứ không phải là một ng-bao gồm để bạn có thể giữ cho phạm vi của bạn sạch sẽ, cung cấp giao diện riêng biệt và tránh các vấn đề như @Roberto Linares chỉ ra. – mccainz
Tôi đã kết thúc bằng văn bản một chỉ thị đơn giản với một phạm vi bị cô lập và với "slider.html" làm mẫu – Dario