的剑术数据源只返回阵列和我的RESTful API返回一个客户端为一个元件的阵列。
但是,我似乎无法将客户端的'姓名'字段绑定到html输入框。
但是,如果我把它放在'ul'中,我可以使用这些数据,如下面的代码所示。我知道JSON响应格式良好,因为我可以console.log(obj [0] .Name);
我试图返回数据源中的obj [0],但这只是打破了一切。 (没有切片错误消息,因为它试图切片数组)。
我敢肯定,这是容易的,但我必须只是在想这一切都错了...
Html和JS如下:
<div data-role="view" data-title="Client Detail" data-model="app.clientView">
<!-- this does not work -->
<input data-bind="value: app.clientView.data"/>
<input data-bind="value: app.clientView.data[0].Name"/>
<input data-bind="value: app.clientView.data.Name"/>
<!-- this works -->
<ul data-role="listview" data-source="app.clientView.data" data-template="client-template"></ul>
<script type="text/x-kendo-template" id="client-template">
<a href="components/clientView/view.html?id=#: ID #">
<div>#: Name #</div>
<div>#: LastActivityOn #</div>
</a>
</script>
app.clientView = kendo.observable({
data: new kendo.data.DataSource({
transport: {
read: {
url: app.uri + "clients/69", //+ id,
type: "get",
dataType: "json",
beforeSend: function (req) {
req.setRequestHeader('X-authKey', app.key);
}
}
\t \t },
schema: {
\t data: function (response) {
\t console.log(response);
\t var obj = $.parseJSON(response);
console.log(obj[0].Name);
\t return obj;
\t }
}
})
});
非常有帮助,但我不能完全得到它的工作。如果我在上面的例子中删除了我的列表视图,它似乎是视图模型数据:和schema:data;永远不会运行。我添加了一个Name:字段,并将其设置为schema:data,其中列表视图存在,并且它可以工作,而不需要它没有的列表视图。我添加了一个变化:为了获得restfull调用的成功,但它永远不会触发。手动调用clientView.data.read();锁定模拟器。尽管我觉得我越来越接近了。 :P我仔细检查你的答案,在那里丢失了好东西。 – kpg
Kendo UI DataSource不会发出请求,除非通过数据绑定窗口小部件或开发人员告知。你正在谈论的锁定可能是一个单独的问题 - 检查JavaScript错误。 – dimodi
我必须对此做一个解决方法,因为我的休息网址的形式是.../clients/{id},其中{id}取决于前一个视图。最好的我可以找到url中的URL:在我设置全局变量ID很久之前,在加载scrip时,传输的部分已经解析。解决方法是在视图onShow处理程序中调用loadClient函数,然后执行典型的ajax调用 - 然后使用jQuery设置我的html元素 - 以简单和熟悉的方式解决我的问题。我将其标记为答案,因为它是我问的问题的答案。 – kpg