2012-06-21 23 views
6

Tôi chỉ tham gia vào backbone.js và tôi nghĩ cách tốt nhất để tham gia vào đó là xây dựng danh sách việc cần làm (yea ... khá nguyên bản). Hài hước sang một bên, tôi đã tìm kiếm google và các tài liệu và stackoverflow tất nhiên, cho một cách để thêm một thuộc tính vào một bộ sưu tập. Vì vậy, trong trường hợp của tôi một danh sách việc cần làm là một tập hợp các listitems. Tuy nhiên một Danh sách Todo có thể có tiêu đề theo thiết kế của tôi, tôi muốn có thể tạo nhiều danh sách.Bạn có thể đặt thuộc tính trên Backbone.js Collections không? Nếu vậy, làm thế nào?

var TodoList = Backbone.Collection.extend({ 
    model: ListItem 
}); 

//is this possible for collections? 
var newTodoList = new TodoList({name: "My first list"}); 

Cảm ơn rất nhiều sự trợ giúp! Cảm kích điều đó!

Trả lời

11

Có, có thể. Nhìn vào chữ ký của Collection constructor:

Bộ sưu tập mới ([mô hình], [tùy chọn])

Vì vậy, bạn có thể viết như thế này:

var ListItem = Backbone.Model.extend({}); 
var TodoList = Backbone.Collection.extend({ 
    model: ListItem, 
    initialize: function(models, options) { 
     options || (options = {}); 
     if (options.title) { 
      this.title = options.title; 
     }; 
    } 
}) 

var iPromise = new TodoList([], { 
    title: 'NY Resolutions' 
}) 

console.log(iPromise.title); 
+0

Cảm ơn rất nhiều cho Cứu giúp! Đó là câu trả lời :) –

+6

Bạn được chào đón. Nhưng tôi nghĩ nhiều hơn một chút, và bây giờ tôi nghĩ câu trả lời của tôi không phải là những gì bạn đang tìm kiếm :). Tôi cho rằng bạn muốn có thể thêm người nghe vào sự kiện thay đổi cũng như bạn có thể làm với các thuộc tính 'Mô hình'. Nhưng với cách tiếp cận được đề cập ở trên, bạn không thể làm điều đó. Bởi vì không có gì đặc biệt về thuộc tính 'Collection' này - nó chỉ là các thuộc tính của đối tượng và Backbone không sử dụng nó theo bất kỳ cách nào. Vì vậy, tôi nghĩ sẽ tốt hơn nếu bạn tạo một Mô hình khác chứa 'TodoList' của bạn. Tôi sẽ đưa ra một ví dụ sau. Xin lỗi nếu tôi nhầm lẫn bạn. – theotheo

+0

muốn xem ví dụ :) –

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