2012-10-02 25 views
27

Tôi thấy bản thân mình lặp đi lặp lại các đoạn cùng một đoạn mã một lần nữa và một lần nữa, là nó có thể làm điều gì đó như thế này trong AngularJS:Có thể thực hiện các đoạn trích có thể tái sử dụng trong các mẫu AngularJS không?

<div ng-snippet="mySnippet"> 
    This is a snippet 
</div> 

<div ng-snippet="anotherSnippet"> 
    Yet another snippet!! 
</div> 

<ng:include src="anotherSnippet"> 
<ng:include src="anotherSnippet"> 
<ng:include src="mySnippet"> 

và đầu ra của trên sẽ được:

Yet another snippet!! 
Yet another snippet!! 
This is a snippet 

Tôi không nhất thiết phải tìm kiếm giải pháp hoặc mô hình "ng: include" chính xác nhưng điều gì đó sẽ làm giảm sự lặp lại trong các mẫu của tôi.

Trả lời

37
<script type='text/ng-template' id="mySnippet"> 
    This is a snippet 
</script> 

<script type='text/ng-template' id="anotherSnippet"> 
    Yet another snippet!! 
</script> 

<ng-include src="'anotherSnippet'"></ng-include> 
<ng-include src="'anotherSnippet'"></ng-include> 
<ng-include src="'mySnippet'"></ng-include> 

Đây phải là điều bạn muốn.

Tài liệu cho scriptng-include.

+0

Hoàn hảo, cảm ơn! – DaveJ

+0

Tuyệt vời. Điều gì về một hình thức mà bạn muốn đầu vào để liên kết với các đối tượng khác nhau, và tên khác nhau cho các yếu tố đầu vào? https://plnkr.co/edit/iCOIq88e7gSSYaE92b0t?p=preview –

12

Điều này nghe có vẻ như bạn muốn sử dụng directives. Dưới đây là ví dụ đơn giản: http://jsfiddle.net/gyF6V/1/

+3

Tôi muốn đi kèm với các chỉ thị bao gồm; họ sẽ làm cho đánh dấu của bạn dễ đọc hơn. – btford

+12

Bất cứ khi nào tôi thấy html bên trong một chuỗi, một cái gì đó bên trong tôi chỉ cảm thấy không đúng. –

+10

Nếu bạn không muốn html bên trong javascript, chỉ cần sử dụng thuộc tính 'templateUrl' thay vì' template' và trỏ nó vào tệp html có mẫu của bạn. – dnc253

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