2013-05-21 20 views
16

Khi cố gắng thêm ng-view bên trong một ng-include, không có gì xảy ra. ví dụ. trong đoạn mã sau, khi themes/đêm/index.html giữ một ng-view, không xem được hiển thị:Làm thế nào để làm tổ ng-view bên trong ng-include?

<ng-include src="'themes/midnight/index.html'"></ng-include> 

Tuy nhiên, nếu tôi sử dụng mã dưới đây, quan điểm hiển thị hai lần:

<ng-include src="'themes/midnight/index.html'"></ng-include> 
<div ng-view></div> 

Vấn đề là gì và tôi có thể giải quyết vấn đề đó như thế nào?

+0

Ý của bạn là gì: "Điều này không hiển thị bất kỳ nội dung nào có liên quan đến chế độ xem:"? – Ven

+0

Ý tôi là ng-view không xuất hiện. – ccoroom

+0

Bạn có đang sử dụng 'template-src' trong các tuyến đường của mình không? Một chút mã hơn sẽ được đánh giá cao :-). 'ng-view' là để sử dụng view' $ routeProvider.when (, {template-url: '...'}); ' – Ven

Trả lời

29

Sự cố này xảy ra do sự khởi tạo bị trì hoãn ng-view (đi qua ng-include). Trong trường hợp này, việc khởi tạo $route cũng bị trì hoãn và $route sẽ bỏ lỡ sự kiện thay đổi vị trí (và định tuyến sẽ không được thực hiện).

Để bỏ qua điều này, gọi hàm $route cập nhật về khởi tạo ứng dụng:

yourApp.run(['$route', function($route) { 
    $route.reload(); 
}]); 

Hơn nữa, nó là đủ để chỉ bao gồm $route như một sự phụ thuộc. Điều này sẽ làm việc, quá:

yourApp.run(['$route', angular.noop]); 

Nguồn: sự liên quan issue on github.


Ngoài ra kiểm tra ui-router, mà được thiết kế để đối phó cụ thể với các vấn đề quan điểm lồng nhau.

+1

Hài hước, nhưng nó thực sự đủ để tiêm $ route trong bộ điều khiển chính - điều này đã khắc phục vấn đề cho tôi)) – KOHb

+1

@KOHb - điều này tương đương với việc tuyên bố nó là phụ thuộc cho ứng dụng. –

+0

làm cách nào để bạn khai báo sự phụ thuộc cho ứng dụng? Đây có phải là ý của bạn: 'angular.module ('Main', [dependencies here])'? – KOHb

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