淘汰赛映射&添加新项目

时间:2012-08-06 18:59:21

标签: knockout.js knockout-mapping-plugin

我在这里有一个示例jsfiddle,它使用knockout映射基于服务器模型(在提供的示例中为本地)生成一些html内容。

http://jsfiddle.net/QShrA/

如何为嵌套地址创建新的地址块? 即如何创建一个名为“添加新”的按钮并在底部创建一个空地址块?

提前感谢您提供的任何帮助。

编辑 - 重新开始

问题没有解决。我注意到在我实现Bill's solution(下面)后,我为新添加的地址块计算的observable不起作用,因为它们已被禁用。希望有人能解决这个问题。感谢。

  self.SMMDD = ko.computed({
        read: function() {
            **if ($.isFunction(self.SMONTH)) {**
                return self.SMONTH() + "/" + self.SDAY();
            **}**
        },
        write: function(value) {
            self.SMONTH(value.substring(0, 2));
            self.SDAY(value.substring(2, 4));
        },
        owner: self
    });

编辑 - 已解决

添加deferEvaluation选项似乎解决了问题。

  self.SMMDD = ko.computed({
        read: function() {
            return self.SMONTH() + "/" + self.SDAY();
        },
        write: function(value) {
            self.SMONTH(value.substring(0, 2));
            self.SDAY(value.substring(2, 4));
        },
        owner: self,
        deferEvaluation: true
    });

1 个答案:

答案 0 :(得分:0)

这是一个分叉/固定版本,我在其中取消注释你的按钮并将其连接起来,以便为数组添加一个空地址。

http://jsfiddle.net/RLNPa/