8

Tôi đang sử dụng chỉ thị ng-include src tại nhiều vị trí trong HTML của mình. Mỗi ng-include là tạo ra một phạm vi riêng biệt cho chính nó mà dường như đang gây ra rất nhiều rắc rối cho tôi.Ngăn chặn `ng-include` khỏi việc tạo ra phạm vi bị cô lập. AngularJS

Ví dụ:

<div ng-controller="parent"> 
    <div ng-include src="'id1'"> 
    </div> 
    <div ng-include src="'id2'"> 
    </div> 
    <div ng-include src="'id2'"> 
    </div> 
</div> 

Trong html được đề cập ở trên, 4 phạm vi đang được tạo. 1 ở cấp độ gốc, trong đó controller được xác định và 3 được tạo theo mặc định tại mỗi ng-include src.

Có thể ngăn chặn ng-include tạo một phạm vi riêng cho chính nó không? Nếu không thể thì có cách giải quyết cho nó không?

+0

chỉ cần tạo chỉ thị và tải của riêng bạn mẫu thông qua nó, mà không tuyên bố độc lập phạm vi –

+0

@pankajparkar như thế nào? Bạn có ví dụ nào về việc làm thế nào nó có thể được thực hiện? –

+0

ng-include không tạo ra một phạm vi bị cô lập - nó tạo ra một phạm vi con không bị cô lập từ cha mẹ. Trước khi bạn phát minh lại bánh xe với một chỉ thị mới, tôi muốn được quan tâm để hiểu những gì loại rắc rối đang được gây ra. Phạm vi con được tạo ra vì một lý do - nó ngăn cản các mẫu can thiệp lẫn nhau. –

Trả lời

14

Bạn cần tạo chỉ thị của riêng mình có thể tải mẫu được chỉ định với phạm vi được cô lập riêng biệt.

HTML

<div ng-controller="parent"> 
    <div my-directive template-path="id1"> 
    </div> 
    <div my-directive template-path="id2"> 
    </div> 
    <div my-directive template-path="id2"> 
    </div> 
</div> 

Chỉ

.directive('myDirective', function() { 
    return { 
     restrict: 'AE', 
     templateUrl: function(ele, attrs) { 
      return attrs.templatePath; 
     } 
    }; 
}); 

Working Plunkr

+0

Nó không trả về bất kỳ thứ gì. –

+0

@AdityaPonkshe xem câu trả lời cập nhật của tôi, thêm 'hạn chế: 'Hỗ trợ thuộc tính AE'' để chỉ thị –

+1

Đã hoạt động! cám ơn nhiều, ông bạn. Tôi đã kết thúc cho con đường mã hóa cứng tại templateurl trong chỉ thị, nhưng nó giải quyết vấn đề phạm vi. 1 cho giải pháp. –

Các vấn đề liên quan