Похоже, вы объединяете кучу разных применений RequireJS:
npm install requirejs
, а затем у вашего HTML-файла есть элемент script
, который указывает на node_modules/requirejs/require.js
. Точно так же, как вы показываете в своем фрагменте кода. Вот и все. Это говорит о том, что мне не нравится node_modules
в том, что я развертываю, поэтому я обычно использую копию процесса сборки require.js
в другом месте. foo
, выполнив require('foo')
. Вы устанавливаете RequireJS и загружаете его как requirejs
. Как вы загружаете foo
с помощью RequireJS? Вы можете просто сделать requirejs('foo')
. До тех пор, пока RequireJS не найдет его через свою собственную конфигурацию, он выдает в качестве последнего средства вызов собственного узла require
и загрузит его таким образом? Вот иллюстрация. Установите RequireJS с npm install requirejs
. Создайте этот файл: var requirejs = require("requirejs");
var fs = requirejs("fs");
console.log(fs);
Затем запустите его. Вы попадете на модуль консоли fs
в консоли. define
. Недавно я загрузил merge-options
в один из моих проектов с помощью gulp-wrap-amd
. merge-options
является модулем CommonJS. Он не поддерживает RequireJS из коробки, но если вы завернете его вызовом define
, он будет работать. C. Это может потребовать что-то более сложное, прежде чем оно будет загружено в браузере. Например, если модуль полагается на модуль Node fs
, вам придется предоставить замену для fs
, которая выполняется в браузере. Вероятно, он будет содержать поддельную файловую систему для вашего кода. Если Вы уже переставляете ViewState вокруг так или иначе, Вы могли бы также использовать UpdatePanel. Его частичные обратные передачи обновят ViewState страницы автоматически.
Проверьте это сообщение в блоге: Тонкая настройка ICallbackEventHandler и Состояния отображения. Автор, кажется, обращается к самой ситуации, что Вы испытываете:
Таким образом, при использовании ICallbackEventHandler у Вас есть два препятствия для преодоления для обновления управления состоянием для обратных вызовов. Сначала проблема состояния отображения только для чтения. Другой на самом деле регистрирует изменения, которые пользователь внес в страницу прежде, чем инициировать обратный вызов.
Посмотрите сообщение в блоге для его предложений о том, как решить это. Также проверьте это сообщение форума, которое обсуждает ту же проблему также.
Я на самом деле нашел обе из тех ссылок Вами, если, но, как отмечено они просто описывают проблему, не решая его. Автор сообщения в блоге предлагает обходное решение при помощи другого поставщика ViewState, но к сожалению который не является возможностью в этом случае... Я действительно должен оставить подробные сведения в покое ViewState и просто зацепиться к тому, что делается out-of-the-box.
Я нашел довольно изящное решение с RadAjaxManager Telerik. Это работает вполне приятно, по существу Вы регистрируете каждое управление, которое могло бы вызвать обратную передачу, и затем регистрировать каждое управление, которое должно быть перерисовано после того, как та обратная передача выполняется асинхронно. RadAjaxManager обновит DOM после асинхронной обратной передачи и перепишет ViewState и все затронутые средства управления. После того, чтобы посмотреть в Отражателе это выглядит немного топорным под капотом, но он удовлетворяет моим целям.
Я не понимаю, почему Вы использовали бы пользовательский элемент управления для этого, когда встроенный ASP.NET AJAX UpdatePanel делает то же самое.
Это просто добавляет больше сложности, оказывает Вам меньше поддержки и делает более трудным для других работать над Вашим приложением.