KnockoutJS向导

时间:2012-07-09 22:45:21

标签: jquery knockout.js custom-component

我正在尝试创建一个可重用的向导控件,它将显示基于Knockout的数据输入表单。从本质上讲,模板永远不会真正改变,但将是完全动态的。我设想能够做到以下几点:

  • 定义一个包含步骤列表的简单模型,基本上是一个步骤ID,可能还有一些关于步骤是否可以返回到完成的逻辑。
  • 然后,每个步骤都应包含要显示的字段或输入项的集合。这实际上分解为HTML标签和输入框。

我把我最初的想法/逻辑放在一起,然后提出this。我在显示字段时遇到问题。步骤标题都正确呈现,但我的Fields集合始终为空。我错过了什么?

1 个答案:

答案 0 :(得分:1)

有趣的背景。我根本无法让它在Fiddle工作,但让它在当地工作。我更改了两件事 - 您需要明确关闭Title的范围,并且您需要使用if测试每个步骤对象的Fields的存在,因为并非所有步骤都有Fields。像这样:

        templateEngine.addTemplate("merlin_wizard", "\
            <div class=\"m-ui-wizard\">\
                <div class=\"m-ui-wizard-steps\" data-bind=\"foreach: steps\">\
                    <div class=\"m-ui-wizard-step\">\
                        <span data-bind=\"text: Title\"></span>\
                        <!-- ko if: $data.Fields -->\
                            <!-- ko foreach: Fields -->\
                                <span data-bind=\"text: Label\" />\
                            <!-- /ko -->\
                        <!-- /ko -->\
                    </div>\
                </div>\
            </div>");