2012-05-03 23 views
14

Không có cách nào để có tập lệnh nội tuyến trong mẫu Sổ tay lái?javascript nội tuyến trong tay lái mẫu

<script type="text/x-handlebars"> 
    I'm a row of type "foo" 
    <script type="text/javascript">alert('hi');</script> 
</script> 

Khi mẫu ở trên hiển thị, tập lệnh nội tuyến sẽ bị xóa.

Điều tôi đang cố gắng làm là bao gồm tiện ích con trên trang. Tiện ích này về cơ bản là một số kịch bản lệnh + disqus.

Tiện ích này sẽ được bao gồm trong chế độ xem phụ của ứng dụng của tôi. Chế độ xem phụ không hiển thị theo mặc định nhưng được hiển thị theo một số logic trong mã ứng dụng Ember của tôi.

Trả lời

10

Bạn sẽ phải bọc tiện ích con đó trong một Ember.View tùy chỉnh để xử lý việc thêm nó và thêm nó vào DOM, trong didInsertElement của khung nhìn của trình bao bọc. Ember mong đợi, đặc biệt là các mẫu handlebars bên trong, để có toàn quyền điều khiển thao tác DOM, và nó thực hiện điều đó với một sự kết hợp của ma thuật tay lái, và tạo ra Ember.View. Một khi bạn đã xác định customview của bạn:

MyApp.DisqusView = Em.View.extend({ 
    didInsertElement: function() { 
     // create widget and append it to this.$() 
    } 
}); 

Bạn có thể sử dụng nó trong tay lái của bạn mẫu:

{{view MyApp.DisqusView}} 

xem bạn nên không thêm thẻ Script, vì lý do an toàn, nhưng thay vì phải thực hiện bất kỳ JS trực tiếp để chèn tiện ích.

+0

+1 và AFAIK, ý tưởng của tay lái là phải có mẫu ít logic hơn – louiscoquio

+0

@louiscoquio Không có logic trong mẫu handlebars của tôi. Logic là trong JS khi nào hiển thị mẫu. Mẫu chỉ có một thẻ tập lệnh trong chính nó. – Rajat

+0

@ Rajat Tôi đã mắc phải sai lầm, xin lỗi tôi. – louiscoquio

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