У меня проблема с областями (глобальными переменными/пространствами имен), которую я просто не могу исправить. Дело в том, что у меня есть устаревший код в проекте, в который я добавил новые функции с помощью Require.js. Этот устаревший код загружается с использованием стандартных тегов <script>
, а новый код загружается с помощью Require. Проблема возникает, когда я добавляю Ractive.js в Require as AMD. Поскольку устаревший код загружает Prototype.js, он имеет некоторые конфликты с Ractive.js.
Основная проблема заключается в наблюдении за изменениями массива. В частности, когда я наблюдаю за массивом с помощью наблюдателя шаблонов.
ractive.observe('dataArray.*', function(newValue, oldValue, keypath) {
alert(' status changed from ' + oldValue + ' to ' + newValue);
}, {debug: true, init: false});
Если я не добавляю наблюдатель в массив, все работает, но если я добавляю его, я получаю ошибку undefined is not a function
в прототипе.js (этого не происходит, когда я удаляю прототип.js из глобалов).
Другое дело, что это действительно работает, когда я не использую обозреватель шаблонов.
Итак, мой вопрос: есть ли способ настроить Require.js для использования только тех скриптов, которые загружаются как AMD-ы? Или, другими словами, ограничить область действия сценариев AMD только друг другом, чтобы он игнорировал глобальные сценарии?
Заранее спасибо.