2016-01-12 20 views
34

Tôi đã theo cấu trúc ứng dụngSử dụng tập tin html như mẫu cho thành phần trong góc 2

app 
    home 
     home.html 
     home.ts 
     home.sass 
    app.component.ts 
index.html 

Về cơ bản tôi muốn chia trang của tôi vào các thư mục riêng biệt mà có phong cách, .ts và các file .html liên quan đến họ

tuy nhiên tại thời điểm tải một mẫu như

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'admin-app', 
    template: 'home/home.html' 
}) 
export class AppComponent { } 

tải văn học "home/home.html" chuỗi này như một mẫu nơi như tôi muốn nội dung html của tập tin home.html.

+2

'mẫu' là một chuỗi. Bạn đang tìm kiếm 'templateUrl'. –

Trả lời

67

Tôi nghĩ rằng nếu bạn muốn vượt qua một mẫu, bạn nên sử dụng

templateUrl: 'home/home.html' 

Điều đó sẽ làm cho một http request và tải html vào thành phần của bạn.

+3

Tôi cũng gặp sự cố với đường dẫn. Đường dẫn phải tương đối so với thư mục gốc trừ khi bạn chỉ định một id mô-đun https://angular.io/docs/ts/latest/cookbook/component-relative-paths.html. –

7

Bạn có thể cân nhắc sử dụng Webpack. Trong trường hợp đó, bạn chỉ cần:

@Component({ 
    selector: 'my-comp', 
    template: require('./mycomp.component.html') 
}) 

Tôi đã tìm thấy giải pháp này là một giải pháp vững chắc vì nó thực sự sẽ tạo ra lỗi thời gian biên dịch nếu URL không chính xác.

+0

Điều này sẽ phá vỡ nếu bạn cố gắng tối ưu hóa mã với trình biên dịch Angular AOT. Đáng buồn thay, rất ít công việc với AOT. –

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