Я не могу на всю жизнь понять, почему ko.mapping не определено.ASP.NET WebForms ko.mapping undefined
Я использую следующие JS библиотеки:
- Jquery
- Нокаут
- knockout.mapping
- момент
- fullcalendar
- DataTables
- datatables.columnFilter
- dataTables.scroller
- jquery.blockUI
Я попробовал следующее (с жесткими обновлениями после каждого изменения):
- Я переупорядоченных в JS-файлы в голове каждую комбинацию я Можно. (Мысль, может быть, на готовой функции была вызывается до загрузки библиотеки)
- Удалены другие библиотеки JS (думал, может быть, был какой-то конфликт)
- Перевернуто локальный файл для справки КДС нокаутировать-отображение
- Создал новый файл и помещал в него нокаут и нокаут, добавляя его в скрипты, чтобы включить
- Изменено имя файла в объединенном файле, чтобы не включать в себя сопоставление слов (я подумал, может быть, было что-то напуганное о имени файла)
Интересно, что на я мог бы получить эту работу:
Если я скопировал в файл нокаута нокаут-карточку (но новый файл с другим именем, но с тем же содержимым).
ИЛИ
То, что я на самом деле в конечном итоге делает было следующее:
$(document).ready(function() {
.
.
.
var loadKnockoutMapping = function() {
var s = document.createElement('script');
s.src = '/cstm/JavaScript/knockout.mapping-2.4.1.js';
document.body.appendChild(s);
var callbackTimer = setInterval(function() {
var mappingIsDefined = false;
try {
mappingIsDefined = (ko.mapping !== undefined);
} catch (e) { }
if (mappingIsDefined) {
clearInterval(callbackTimer);
setupRequestableAssignmentData(); //uses ko.mapping.fromJS function
}
}, 100);
}
loadKnockoutMapping();
}
Кто-нибудь есть какие-либо идеи, что происходит здесь? Я даже попробовал просто не добавлять на страницу новый элемент сценария и только функцию таймаута, чтобы ждать, пока ko.mapping не будет неопределенным, но это не сработало. Ko.mapping никогда не определялся ничем.
Я сочувствую вашей ситуации, но я боюсь, что без Repro (который -I ноу- это * действительно * трудно создать для такого рода проблемы) можно прибегнуть только гадать, какой вопрос является. – Jeroen
Вы пытались поднять таймер? Возможно, 100 мс недостаточно долго ждать. –
@ Jeroen да, я думаю, что самая неприятная часть этого - я использовал ту же комбинацию библиотек на другой странице в том же проекте.Возможно, я смогу перестроить страницу по частям, чтобы узнать, могу ли я найти основную причину, а затем отправьте решение здесь. – Corey