2012-04-17 8 views
7

Tôi có ứng dụng Ember.js. Trong mẫu chính tôi có một nút trợ giúp khi nhấp vào sẽ hiển thị chú giải công cụ CSS. Tôi có tooltip là một mẫu Handlebars riêng biệt.Tôi có thể chèn động mẫu mới vào DOM bằng Ember bằng cách nào?

Điều tôi đang cố gắng thực hiện là xử lý sự kiện nhấp để chèn cửa sổ bật lên vào DOM và hiển thị nó. Tôi không thể tìm ra cách chèn các mẫu mới vào DOM bằng cách sử dụng Ember.

Dưới đây là mẫu của tôi, nơi các nút giúp đỡ được hiển thị:

<div id="status_help" class="icon_help" {{action "helpClicked"}}></div> 

Dưới đây là quan điểm chính của tôi:

var checkbox = Ember.Checkbox.extend({ 
    templateName: 'checkbox', 
    helpClicked: function(e) { 
     // Not sure what to do here 
    } 
})); 

var tooltip = Ember.View.extend({ 
    templateName: 'tooltip' 
}); 

Vì vậy, tôi không biết phải làm gì trong xử lý sự kiện để làm cho tooltip và chèn nó vào DOM để hiển thị.

Trả lời

12

Bạn có thể tạo chế độ xem mới và gắn nó vào DOM bằng cách sử dụng phương thức của append hoặc appendTo.

App.MyView = Ember.View.extend({ 
    templateName: 'a_template' 
}) 

var view = App.MyView.create(); 

// Append the view to the document body 
view.append(); 
// ...or append to any element described using 
// a jQuery-compatible selector. 
view.appendTo('#my-div'); 
+0

Ngoài ra còn có một 'phương pháp replaceIn', xem https://github.com/emberjs/ember.js/blob/255bd707a73c905fa6e14ac76f134642e9802667/packages/ember-views/lib/views/view.js#L704- 724. – pangratz

+1

Tôi đang làm ngược lại. Tôi đã gọi phụ thêm vào chế độ xem gốc để cố gắng thêm con. Tôi sẽ cung cấp cho một shot, cảm ơn. –

+1

Làm thế nào điều này sẽ được thực hiện trong Ember 2.x bây giờ mà Views đã không được chấp nhận? – tojofo