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