Удаление встроенного JavaScript не удалосьJavascript

Форум по Javascript
Ответить
Anonymous
 Удаление встроенного JavaScript не удалось

Сообщение Anonymous »

Файл представления Rails 7.1 запускается со встроенным JavaScript следующим образом.

Код: Выделить всё

var autoComplete = (function(){
[ ... contents of .js file. see below]


var demo1 = new autoComplete({
selector: '#user_municipal_other',
minChars: 1,
source: function(term, suggest){
term = term.toLowerCase();
var choices = ;
var suggestions = [];
for (var i = 0; i < choices.length; i += 1) {
if (choices[i].toLowerCase().indexOf(term) !== -1) suggestions.push(choices[i]);
}
suggest(suggestions);
}
});

Попытка удалить встроенный JavaScript не удалась. Описано количество попыток.
закрепление двух версий, отдельных попыток, в importmap.rb

Код: Выделить всё

pin "pixabay-javascript-autocomplete", to: "https://ga.jspm.io/npm:pixabay-javascript-autocomplete@1.0.4/auto-complete.min.js"
pin "auto-complete", to: "auto-complete.js"
последний представляет собой не минимизированную версию указанного скрипта, и файл находится в каталоге app/javascript.

Код: Выделить всё

application.js
имеет соответствующие включенным контактам

Код: Выделить всё

import PixabayJavascriptAutocomplete from "pixabay-javascript-autocomplete"
import AutoComplete from "auto-complete"
При использовании внешней версии консоль не сообщает об ошибках. При использовании локально предоставленного модуля консоль жалуется на Uncaught SyntaxError: запрошенный модуль «http://localhost:3000/assets/auto-compl ... cffed48.js» не обеспечивает экспорт с именем: «по умолчанию». Я не могу понять, почему одинаковый код (кроме минимизации) может генерировать два разных поведения.
В обоих случаях консоль жалуется, что Uncaught ReferenceError: autoComplete не определен, ссылаясь на строку var demo1 = new autoComplete javascript_tag. Таким образом, скрипт на странице не обращается к скрипту, загруженному в шапку Следующим шагом было добавить в index.js следующее:

Код: Выделить всё

import AutoCompleteMunController from "./auto_complete_mun_controller"
application.register("auto-complete", AutoCompleteMunController)
с auto_complete_mun_controller.js, определенным как:

Код: Выделить всё

import { Controller } from "@hotwired/stimulus";

// initialize only when the page / element exists
// use turbo:load for Turbo Drive support (or DOMContentLoaded if not using Turbo)
document.addEventListener("turbo:load", () => {
const el = document.querySelector("#user_municipal_other");
if (!el) return;

new autoComplete({
selector: '#user_municipal_other',
minChars: 1,
source: function(term, suggest){
term = term.toLowerCase();
var choices = ;
var suggestions = [];
for (var i = 0; i < choices.length; i += 1) {
if (choices[i].toLowerCase().indexOf(term) !== -1) suggestions.push(choices[i]);
}
suggest(suggestions);
}
});
});
но вызов для рендеринга переменной экземпляра, необходимой для автозаполнения , имеет выражение SyntaxError: ожидаемое, получено '

Подробнее здесь: https://stackoverflow.com/questions/798 ... pt-failing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»