Knockout映射将空属性替换为其他属性

时间:2015-02-24 22:09:04

标签: knockout.js

我想使用knockout返回JSON数据,而DisplayName有时会有空字符串。如果它是空的,我想用名称替换它,但我不想使用create:选项,因为我不想映射每个节点。

            'DisplayName': {
            update: function (options) {
                if (options.data !== "") {
                    return options.data;
                    console.log(options);
                }
                else {
                    return options.Name;
                }
            }
        }

这是jsFiddle http://jsfiddle.net/ew48r0pd/1/

所以我期望的结果应该是 ADMIN1 乔 罗伯特 蒂姆 ADMIN5

1 个答案:

答案 0 :(得分:0)

我会以http://jsfiddle.net/ew48r0pd/3作为答案。

var Item = {            
        'FullName': {
            create: function (options) {
                if (options.DisplayName !== "") {
                    return options.DisplayName;
                    console.log(options);
                }
                else {
                    return options.Name;
                }
            }
        },

        'DisplayName': {
            update: function (options) {
                if (options.data !== "") {
                    return options.data;

                }
                else {
                    return options.parent.Name();
                }
            }
        }
    };