让koGrid与Breeze和Durandal热毛巾模板一起工作

让koGrid与Breeze和Durandal热毛巾模板一起工作,breeze,durandal,hottowel,kogrid,q,Breeze,Durandal,Hottowel,Kogrid,Q,我有一个Durandal小部件热毛巾模板,其中包含一个koGrid,我正试图将其绑定到我的视图模型 我对这些技术相当陌生,包括异步延迟和承诺,所以请原谅我对这些问题的无知 视图模型从datacontext类获取数据,datacontext类只返回Breeze实体管理器查询的结果,该查询返回Q承诺: var manager = new breeze.EntityManager({ dataService: dataService }); return manager.executeQuery(

我有一个Durandal小部件热毛巾模板,其中包含一个koGrid,我正试图将其绑定到我的视图模型

我对这些技术相当陌生,包括异步延迟和承诺,所以请原谅我对这些问题的无知

视图模型从datacontext类获取数据,datacontext类只返回Breeze实体管理器查询的结果,该查询返回Q承诺:

 var manager = new breeze.EntityManager({ dataService: dataService });
 return manager.executeQuery(query)
            .then(function (data) {
                return data.results;
            })
            .fail(queryFailed);
在我的小部件的构造函数中,我有:

var vm = function(element, settings) {
    var self = this;
    this.settings = settings;
    this.myData = ko.observableArray([]);

    this.viewAttached = viewAttached;       

    queryDataContext.executeQuery('Customer', 'good').then(function(ents) {

    var Item = function(id, name, maincontacttelephone) {
        this.ID = id;
        this.Name = name;
        this.MainContactTelephone = maincontacttelephone;
    };

    for (var i = 0; i < ents.length; i++) {
        self.myData.push(new Item(ents[i].ID(), ents[i].Name(), ents[i].MainContactTelephone()));
    }

    self.gridOptions = { data: self.myData };

    });
};
return vm;

function viewAttached(view) {
    $(window).trigger('resize');
    return true;
}
valueAccessor未定义,这会阻止网格工作

现在,如果我将执行远程查询的代码更改为:

$.when(queryDataContext.executeQuery('Customer', 'good')).then(function(ents) {
使用jQuery可以保证在某些情况下工作。然而,ents变量是“makePromise”类型,我不知道如何解决这个问题

从我的理解来看,这是一个Q承诺,微风无论如何都会回来,如果我使用

whenqueryDataContext.executeQuery'Customer','good'。然后是Functionments{

然后,ents包含数据,但我又回到了koGrid未定义的问题

非常感谢任何帮助!

编辑:哎呀,看看你不是在说剑道格网,我的错……但你可以试试,这正是我在尝试让剑道格网工作时遇到的错误,所以你永远不知道!试试吧,它不花什么钱:

=====

您使用的是哪个版本的JQuery?Kendo UI控件仅在官方上与JQuery 1.7.2兼容。因此,如果您使用的是JQuery的最新分支1.9,它将不再工作,因为它依赖于JQuery 1.9.x中不推荐使用的某些函数

几周前,我在使用剑道UI网格控件时遇到了同样的问题,但有一个解决方案

您必须在JQuery标准的.JQuery.Migrate插件旁边包含JQuery.Migrate插件,以恢复不推荐使用的函数,从而使用最新版本的JQuery无法使用的功能

您可以获得JQuery的最新版本。请在此处迁移:

希望它能解决你的问题:

编辑:哎呀,看看你不是在说剑道格网,我的错……但你无论如何都可以试试,这正是我在尝试让剑道格网工作时遇到的错误,所以你永远不知道!试试吧,它不需要任何成本:

=====

您使用的是哪个版本的JQuery?Kendo UI控件仅在官方上与JQuery 1.7.2兼容。因此,如果您使用的是JQuery的最新分支1.9,它将不再工作,因为它依赖于JQuery 1.9.x中不推荐使用的某些函数

几周前,我在使用剑道UI网格控件时遇到了同样的问题,但有一个解决方案

您必须在JQuery标准的.JQuery.Migrate插件旁边包含JQuery.Migrate插件,以恢复不推荐使用的函数,从而使用最新版本的JQuery无法使用的功能

您可以获得JQuery的最新版本。请在此处迁移:


希望它能解决您的问题:

就是这样……即使没有剑道,只添加迁移插件也能解决问题。非常感谢!就是这样……即使没有剑道,只添加迁移插件也能解决问题。非常感谢!
$.when(queryDataContext.executeQuery('Customer', 'good')).then(function(ents) {