Javascript 更改源时,数据源中的数据不会刷新
我在KendoUI中有一个与点击事件相关的数据源。我的意思是,在元素的click ID传递给函数之后,函数会根据ID为数据源选择合适的url 问题: 我检查并正确传递了url,一切正常,但每个用户的数据并没有改变。例如,如果我点击id为1的用户,我会得到1.json,但当我点击id为2的用户时,我也会从1.json得到数据 当我第一次单击id为2的用户时,我得到了2.json,当我单击id为1的用户后,我得到了2.json数据 如何刷新此数据 编辑: 我忘了添加,函数getData在kendo.observable对象中。我想可能没有必要告诉你,我想让它尽可能简单,但是。。很明显,事情没那么简单。实际代码:Javascript 更改源时,数据源中的数据不会刷新,javascript,jquery,ajax,kendo-ui,Javascript,Jquery,Ajax,Kendo Ui,我在KendoUI中有一个与点击事件相关的数据源。我的意思是,在元素的click ID传递给函数之后,函数会根据ID为数据源选择合适的url 问题: 我检查并正确传递了url,一切正常,但每个用户的数据并没有改变。例如,如果我点击id为1的用户,我会得到1.json,但当我点击id为2的用户时,我也会从1.json得到数据 当我第一次单击id为2的用户时,我得到了2.json,当我单击id为1的用户后,我得到了2.json数据 如何刷新此数据 编辑: 我忘了添加,函数getData在kendo.
var myModel = kendo.observable({
getData: function(myDiv,id) {
mySource.transport.options.read.url = id + '.json';
mySource.fetch(function(){
var data = this.data();
var tree = $('<ul></ul>');
$.each(data, function(i,object) {
$('<li>').html('<a href="">'+object.task_name+'</a>').appendTo(tree);
});
tree.appendTo(myDiv);
});
}
};
var myModel=kendo.observable({
getData:函数(myDiv,id){
mySource.transport.options.read.url=id+'.json';
fetch(函数(){
var data=this.data();
变量树=$(“
”);
$.each(数据、函数(i、对象){
$(').html(').appendTo(树);
});
树。附属物(myDiv);
});
}
};
并且
getData()
绑定为单击div事件(移动应用程序)在这种情况下,这将解决它:
function getData(myDiv,id) {
mySource.transport.options.read.url = id + '.json';
var me = this; //Check this
mySource.fetch(function(){
var data = me.data(); //And this
var tree = $('<ul></ul>');
$.each(data, function(i,object) {
$('<li>').html('<a href="">'+object.task_name+'</a>').appendTo(tree);
});
tree.appendTo(myDiv);
});
}
函数getData(myDiv,id){
mySource.transport.options.read.url=id+'.json';
var me=this;//检查这个
fetch(函数(){
var data=me.data();//这个
变量树=$(“希望这能有所帮助。干杯显然,获取数据会记住上次的响应(?),因此对我有效的解决方案是:
var myModel = kendo.observable({
getData: function(myDiv,id) {
mySource.transport.options.read.url = id + '.json';
mySource.read();
mySource.one('change',function(){
var data = this.data();
var tree = $('<ul></ul>');
$.each(data, function(i,object) {
$('<li>').html('<a href="">'+object.task_name+'</a>').appendTo(tree);
});
tree.appendTo(myDiv);
});
}
};
var myModel=kendo.observable({
getData:函数(myDiv,id){
mySource.transport.options.read.url=id+'.json';
mySource.read();
mySource.one('change',function(){
var data=this.data();
变量树=$(“
”);
$.each(数据、函数(i、对象){
$(').html(').appendTo(树);
});
树。附属物(myDiv);
});
}
};
是的,它是mySource.one,不是“on”。emm不是,它现在只显示对象没有方法“data”。我认为数据有问题()部分,在控制台中,它显示正在加载正确的源代码。我没有清除div等。尝试用jsbin示例演示您的情况,代码看起来一切正常。我找到了解决方案。不知道是添加答案还是编辑我的问题?添加答案并将其标记为已解决。