Kendo-UI将模板值分配给MVVM,MVVM不是绑定数据源的属性

时间:2015-10-01 18:17:10

标签: mvvm data-binding kendo-ui kendo-mvvm kendo-template

您能告诉我如何将带有input-field的动态数量的表单值分配给模板中的MVVM-Property。官方文档的示例始终绑定到绑定的dataSource的属性。我不想使用数据源属性,因为生病有一个更复杂的数据源,所以我不想将整个对象发送到服务器,只有输入的值!我想这样:

<div id="example" data-template="template" data-bind="source: arr"></div>

<script id="template" type="text/x-kendo-template">
    <div>
        <div> Age: ${age}</div>
        <input type="text" data-bind="value: inputs"/>
        <h1 data-bind="text: inputs"></h1>
        <span data-bind="click: show">click</span>
    </div>
</script>

var arr = new kendo.data.ObservableArray([
    { name: "John Doe", age: 23 }, 
    { name: "Jane Doe", age: 34 }
]);

var viewModel = kendo.observable({
    arr: arr ,
    inputs:"asdas",
    show: function(){alert(viewModel.get('inputs'));}

});

kendo.bind($("#example"), viewModel);

您将看到输入属性未获得输入的值。这样做的正确方法是什么?

感谢

1 个答案:

答案 0 :(得分:0)

这是您更新的代码

<div id="example" data-template="template" data-bind="source: arr"></div>

<script id="template" type="text/x-kendo-template">
    <div>
        <div> Age: ${age}</div>
        <input type="text" data-bind="value: name"/>
        <h1 data-bind="text: name"></h1>
        <span data-bind="click: show">click</span>
    </div>
</script>

var arr = new kendo.data.ObservableArray([
    { name: "John Doe", age: 23 }, 
    { name: "Jane Doe", age: 34 }
]);

var viewModel = kendo.observable({
    arr: arr ,
    inputs:"asdas", // Binding with this is also working
    show: function(e){alert(e.data.name);}

});

kendo.bind($("#example"), viewModel);

在这个小提琴链接中工作:http://jsfiddle.net/iamsalik/pk7jr1x1/1/