[#330,model][s]: getFieldValue & getFieldValueUnrendered now return '' if field argument is null / undefined - fixes #330.
This commit is contained in:
parent
ebc56dace7
commit
dc55d53fdd
@ -309,9 +309,11 @@ my.Record = Backbone.Model.extend({
|
||||
//
|
||||
// For the provided Field get the corresponding rendered computed data value
|
||||
// for this record.
|
||||
//
|
||||
// NB: if field is undefined a default '' value will be returned
|
||||
getFieldValue: function(field) {
|
||||
val = this.getFieldValueUnrendered(field);
|
||||
if (field.renderer) {
|
||||
if (field && !_.isUndefined(field.renderer)) {
|
||||
val = field.renderer(val, field, this.toJSON());
|
||||
}
|
||||
return val;
|
||||
@ -321,7 +323,12 @@ my.Record = Backbone.Model.extend({
|
||||
//
|
||||
// For the provided Field get the corresponding computed data value
|
||||
// for this record.
|
||||
//
|
||||
// NB: if field is undefined a default '' value will be returned
|
||||
getFieldValueUnrendered: function(field) {
|
||||
if (!field) {
|
||||
return '';
|
||||
}
|
||||
var val = this.get(field.id);
|
||||
if (field.deriver) {
|
||||
val = field.deriver(val, field, this);
|
||||
|
||||
@ -60,6 +60,20 @@ test('Field: type mapping', function () {
|
||||
});
|
||||
});
|
||||
|
||||
test('Field: getFieldValue', function () {
|
||||
var doc = new recline.Model.Record({
|
||||
x: 12.3
|
||||
});
|
||||
var field = new recline.Model.Field({id: 'x'});
|
||||
var out = doc.getFieldValue(field);
|
||||
var exp = 12.3;
|
||||
equal(out, exp);
|
||||
|
||||
// bad value
|
||||
var out = doc.getFieldValue();
|
||||
equal(out, '');
|
||||
});
|
||||
|
||||
test('Field: default renderers', function () {
|
||||
var doc = new recline.Model.Record({
|
||||
x: 12.3,
|
||||
@ -113,8 +127,10 @@ test('Field: custom deriver and renderer', function () {
|
||||
var field = new recline.Model.Field({id: 'computed', is_derived: true}, {
|
||||
deriver: deriver
|
||||
});
|
||||
var out1 = doc.getFieldValueUnrendered(field);
|
||||
var out = doc.getFieldValue(field);
|
||||
var exp = 246;
|
||||
equal(out1, exp);
|
||||
equal(out, exp);
|
||||
|
||||
var field = new recline.Model.Field({id: 'x'}, {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user