2013-07-11 32 views
6

Ember.js (và dữ liệu Ember) cho phép tôi chỉ định các thuộc tính của mô hình, chẳng hạn như id, labeldescription. Nhưng tôi cho phép người dùng của mình thêm thuộc tính của riêng họ vào bất kỳ mô hình nào, điều này rõ ràng là không thể đối với tôi để biết. Có cách nào tôi có thể tự động thêm các thuộc tính vào một mô hình trong thời gian chạy không? (Và quan trọng hơn, Ember.js sẽ nhận ra những thay đổi trên các thuộc tính đó và lưu chúng?)Thuộc tính mô hình động Ember.js

Trả lời

13

Ember xác định các thuộc tính đối tượng qua Ember.defineProperty. Chữ ký là Ember.defineProperty(object, propertyName, function). Ví dụ để xác định một tài sản được hỗ trợ bởi _loremlorem, bạn có thể sử dụng

Ember.defineProperty(this, 'lorem', 
    Ember.computed(function (key, value) { 
    if (value) { 
     this.set('_lorem', value); 
     return value; 
    } else { 
     return this.get('_lorem'); 
    } 
    } 
)); 

Bạn có thể gọi phương pháp này có trụ sở tại một handler đầu vào người dùng khi propertyName là năng động. Loại điều này phù hợp nhất để mở rộng hệ thống đối tượng Meta. Thận trọng, đặc biệt là với đầu vào của người dùng!

+0

câu trả lời hay đấy @Darshan! – intuitivepixel

+0

Cảm ơn, tôi nghĩ rằng đây chính xác là những gì tôi cần. – GJK