有没有人有将 Infragistics Ingite UI 控件集成到 Hot Towel/Durandal SPA 应用程序的经验?
我已将此 ig 示例集成到基本的 Hot Towel 应用程序中:
http://www.infragistics.com/products/jquery/sample/grid/grid-knockoutjs-integration
它适用于简单的绑定,例如:
看法:
<table id="grid" data-bind="igGrid: {
dataSource: gridData, autoGenerateColumns: false,
columns: [
{ headerText: 'Product Name', key: 'Name', dataType: 'string' }
]}">
</table>
虚拟机:
define(['services/logger'], function (logger) {
var vm = {
activate: activate,
title: 'Details View',
gridData: adventureWorks // Points to ig's JSON sample data
};
return vm;
//#region Internal Methods
function activate() {
return true;
}
//#endregion
});
这工作正常并呈现网格。但是,只要将任何功能添加到绑定中,就会出现错误,例如:
<table id="Table1" data-bind="igGrid: {
dataSource: gridData, autoGenerateColumns: false,
features: [
{ name: 'Sorting', type: 'local' }
],
columns: [
{ headerText: 'Product Name', key: 'Name', dataType: 'string' }
]}">
</table>
错误是“[”无法调用未定义的方法'_injectGrid'”,“视图/详细信息”,对象]”。
我正在使用 jQuery.Migrate 库(因为 ig 仍然引用 1.7 而 Durandal 想要 1.9),并使用它来加载依赖的 ig 脚本:
$.ig.loader({
scriptPath: "../App/Infragistics/js/",
cssPath: "../../Content/",
resources: "igGrid.*,extensions/infragistics.datasource.knockoutjs.js,extensions/infragistics.ui.grid.knockout-extensions.js"
});
顺便说一句,我曾尝试使用“传统”jQuery(即非 KO)API 来创建网格,但我遇到了更多问题!
非常感谢任何帮助。