2013-08-22 49 views
5

Ứng dụng của chúng tôi sử dụng các mẫu Mustache trong index.mustache và thực hiện cuộc gọi API ban đầu với Symfony thay vì sử dụng Backbone. Điều này là để người dùng sẽ không nhìn chằm chằm vào màn hình trống khi tải trang ban đầu.Làm cách nào để liên kết phần mềm Marionette.ItemView với phần tử trang hiện có, thay vì chuyển mẫu?

Bây giờ chúng ta có thể sử dụng Marionette sau đó để liên kết với các phần tử trang được hiển thị trong DOM (để chúng ta có thể thao tác dữ liệu và thêm tương tác) thay vì truyền mẫu mới?

Theo như nghiên cứu của chúng tôi đề xuất, chúng tôi cần phải luôn chuyển mẫu vào Giao diện giả và ItemView hoặc chúng tôi nhận được 'không có lỗi mẫu'.

Có tài sản el nào chúng tôi có thể sử dụng, giống như trong Backbone không? Tùy chọn khác sẽ là mở rộng Marionette.View, nhưng không nên làm như vậy.

Trả lời

7

Bạn chỉ cần khởi tạo chế độ xem mà không cần hiển thị. http://jsfiddle.net/vpetrychuk/PkNTp/

var ItemView = Backbone.Marionette.ItemView.extend({ 
    el : '.content', 
    events : { 
     'click' : 'clickHandler' 
    }, 
    clickHandler : function() { 
     this.$el.append('clickHandler'); 
    } 
}); 

new ItemView(); 
+0

Tôi không biết mình đang làm gì sai. Bây giờ nó hoạt động ... Lạ lùng. Cảm ơn Vitaliy! –

+6

Tôi sẽ đề xuất một thay đổi nhỏ: không mã hóa 'el' vào chính chế độ xem. Điều này sẽ gây đau đầu sau đó. Thay vào đó, hãy chuyển 'el' vào các tùy chọn hàm tạo:' new ItemView ({el: ".content"}); ' –

+0

@DerickBailey Cảm ơn lời khuyên, vâng, điều này chắc chắn có thể tái sử dụng được. Big fan của Marionette Btw! :) –