Есть ли у кого-нибудь опыт интеграции элементов управления 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>
VM:
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' неопределенного", "представления/детали", Object]".
Я использую библиотеку 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"
});
Между прочим, я попытался использовать «традиционный» API jQuery (т.е. не-KO) для создания сетки, и у меня появилось еще больше проблем!
Любая помощь очень ценится.