2013-09-26 54 views
6

Có cách nào hợp lý trong một mô hình để nối hai lĩnh vực, một cái gì đó như thế này:ExtJS Người mẫu - lĩnh vực CONCATENATE

Ext.define('model.Person', { 
    extend: 'Ext.data.Model', 
    idProperty: 'Id', 
    fields: [ 
     { name: 'Id', type: 'int' }, 
     { name: 'FirstName', type: 'string' }, 
     { name: 'LastName', type: 'string' }, 
     { name: 'FullName', type: 'string', mapping: 'FirstName + " " + LastName' } 
    ] 
}); 

Tôi đã thử vô số cách khác nhau, nhưng dường như không thể nhận được bất kỳ để công việc.

Tôi sẽ sử dụng chức năng trong mô hình để gắn hai trường lại với nhau, nhưng tôi cũng cần sử dụng chức năng này làm trường hiển thị bên trong 'mục kiểm soát' và điều khiển động có vẻ như 'FullName()' là một trường hiển thị.

Bất kỳ suy nghĩ nào được đánh giá cao.

Trả lời

10

Sử dụng convert cấu hình của Ext.data.Field: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Field-cfg-convert

{ name: 'FirstName', type: 'string' }, 
{ name: 'LastName', type: 'string' }, 
{ 
    name: 'FullName', 
    type: 'string', 
    convert: function(v, record) { 
     return record.get('FirstName') + ' ' + record.get('LastName') 
    } 
} 

Dưới đây là một ví dụ sống: https://fiddle.sencha.com/#fiddle/mf

+0

Perfect, nhờ đó chính xác những gì tôi đang tìm kiếm. Thật không may tôi nhận thấy nó gắn thêm tài sản mới khi thực hiện một yêu cầu đến cửa hàng, do đó, giá trị hợp chất đi xuống dây đó là những gì tôi đã cố gắng để tránh, hoặc là cách, câu trả lời tuyệt vời. – dougajmcdonald

+0

Để ngăn không cho trường đó được gửi như một phần của yêu cầu, chỉ cần thêm persist: false vào định nghĩa trường. – existdissolve

+0

Hiệu chỉnh: các trường đã chuyển đổi không bị hỏng dây Tôi đã không cập nhật mã phía máy chủ của mình! – dougajmcdonald

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