Knockoutjs 3.2.0中的嵌套ViewModels

时间:2015-01-07 09:44:22

标签: javascript html data-binding knockout.js viewmodel

我有一个应用于主div的全局视图模型

我有一些其他视图模型,我想将它们应用于我的主div的嵌套元素

但是我得到了

  

您无法多次将绑定应用于同一元素。

这里是一个样本:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>

    <div id="main">

        <input data-bind="value:title,valueUpdate:'afterkeyup'" />

        <h1 data-bind="text:title"></h1>


        <hr />

        <div id="sub">

            <input data-bind="value:name,valueUpdate:'afterkeyup'" />
            <label data-bind="text:name"></label>

            <!-- a reference to title in globalViewModel -->
            <h1 data-bind="text:title"></h1>

        </div>

    </div>

    <script src="Scripts/knockout-3.2.0.js"></script>
    <script>

        var globalViewModel = {
            title : ko.observable("global title")
        }

        var subViewModel =  {
            name : ko.observable("Test")
        }

        ko.applyBindings(globalViewModel);
        ko.applyBindings(subViewModel, document.getElementById('sub'));

    </script>
</body>
</html>

请指导我的精彩解决方案:)

1 个答案:

答案 0 :(得分:0)

需要为两个视图模式分别应用绑定 或者只能在同一个viewModal中创建两个属性