我需要一个从数据源获取的字段的默认值,并使用可观察的值绑定到该字段。 (然后,如果用户需要使用树形视图,可以更新该值)。我可以读取初始的远程数据源,构建可观察的并将其绑定到字段。然后,我可以弹出一个对话框,显示一棵树并返回值。我似乎无法做的是设置可观察的值,因为它基于数据源,因此似乎是一个更大,更复杂的json对象,正在控制台中查看。为了使该功能正常工作,我还必须进行不同的绑定,如下所示。
下面只是一个片段,但应该给出一个想法。远程数据源仅返回:{“ name”:“一个名称字符串”}
<p>Your default location is currently set to: <span id="repName" data-bind="text: dataSource.data()[0].name"></span></p>
<script>
$(document).ready(function () {
var personSource2 = new kendo.data.DataSource({
schema: {
model: {
fields: {name: { type: "string" }}
}
},
transport: {
read: {
url: "https://my-domain/path/paultest.reportSettings",
dataType: "json"
}
}
});
personSource2.fetch(function(){
var data = personSource2.data();
console.log(data.length); // displays "1"
console.log(data[0].name); // displays "a name string"
var personViewModel2 = kendo.observable({
dataSource: personSource2
});
var json = personViewModel2.toJSON();
console.log(JSON.stringify(json));
observName1 = personViewModel2.get("dataSource.data.name");
console.log("read observable: "+observName1);
kendo.bind($(''#repName''), personViewModel2);
});
经过大量的试验,我设法使用以下方法来绑定值: data-bind =“ text:dataSource.data()[0] .name” 但我找不到任何地方记录在案。 在将可观察的结果输出到控制台的地方,我得到了一个很大的对象,而不是我期望的简单的可观察的数据结构。我怀疑这里缺少基本的东西! 我目前只是试图阅读上面的观察,但无法获取它从json源返回字符串。
答案 0 :(得分:0)
personSource2.fetch(function(){
var data = personSource2.data();
console.log(data.length); // displays "1"
console.log(data[0].name); // displays "Jane Doe"
var personViewModel2 = kendo.observable({
dataSource: personSource2
});
var json = personViewModel2.toJSON();
console.log(JSON.stringify(json));
observName1 = personViewModel2.get("dataSource.data()[0].name");
console.log("read observable: "+observName1);
personViewModel2.set("dataSource.data()[0].name","Another Value");
observName1 = personViewModel2.get("dataSource.data()[0].name");
console.log("read observable: "+observName1);
kendo.bind($(''#repName''), personViewModel2);
});