2012-03-16 35 views
5

Hiện tại, nếu chúng tôi xác định chế độ xem là {{#view App.myView}}, các thanh ghi/thanh ghi sẽ quấn phần tử chế độ xem trong một số <div id="ember-1234" class='ember-view'>.Trình trợ giúp xem Ember JS/Handlebars

Có cách nào để ngăn chặn điều này không?

Trả lời

11

Bạn có thể muốn thiết lập tagname là ''.

App.MyView = Em.View.extend({ 
    tagName: '' 
}); 

Ít nhất nó dừng gói nội dung bên trong.

1

Tôi giả sử bạn đang nói về lớp 'chế độ xem ember' không thể tùy chỉnh (loại yếu tố có thể tùy chỉnh nhờ thuộc tính tagName ...).

Thực ra, Ember sau đó sử dụng lớp này để đăng ký (một lần!) Một trình xử lý sự kiện trên tài liệu để gửi các sự kiện đến giao diện JS.

Tôi không quan tâm nó sẽ đơn giản hơn để tránh sử dụng lớp này. Sẽ phải tìm cách khác để chọn tất cả các yếu tố được kiểm soát của ember, nhưng tôi không biết làm thế nào.

Xem source, @ dòng 117.

+0

Thực ra, tôi đã nói rằng myView sẽ được tạo như thế này

. Về cơ bản, tôi không muốn #myView được gói bên trong # ember-1234 –

+0

Đã thêm một câu trả lời khác ... –

2

Nếu bạn muốn tùy chỉnh id xem yếu tố, bạn có thể sử dụng:

{{#view App.myView id="my-id"}} 
+0

Nhưng nó vẫn được bao bọc bên trong div khi được tạo. Tôi muốn loại bỏ div gói. –

+0

Vì vậy, những gì bạn muốn không phải là một cái nhìn ... Bạn có thể vui lòng xây dựng một chút mẫu mã của bạn? Mục đích của bạn là gì? Có thể bạn chỉ cần bao gồm nội dung của mình mà không có chế độ xem. –

2

Tôi thường nghĩ rằng quan điểm của tôi như wrapper. Ví dụ: nếu mã html đã cho ban đầu là:

<div class="item"><p>my stuff></p></div> 

Sau đó, tôi tạo chế độ xem có thuộc tính tagName là "div" (mặc định) và thuộc tính classNames là "mục". Điều này sẽ làm cho, với tay lái thích hợp mẫu:

{#view App.myView} 
    <p>my stuff></p> 
{/view} 

-> render as 

<div id="ember-1234" class="ember-view item"> 
    <p>my stuff></p> 
</div> 

Sau đó, nếu bạn cần phải có ID thích của bạn trên div này, bạn có thể xác định "elementId" tài sản trên lớp nhìn của bạn (trước khi tạo()). (@see source code)

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