Code: Select all
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);
}
});
Anheften zweier Versionen, separater Versuche, in importmap.rb
Code: Select all
pin "pixabay-javascript-autocomplete", to: "https://ga.jspm.io/npm:[email protected]/auto-complete.min.js"
pin "auto-complete", to: "auto-complete.js"
Code: Select all
application.jsCode: Select all
import PixabayJavascriptAutocomplete from "pixabay-javascript-autocomplete"
import AutoComplete from "auto-complete"
In beiden Fällen beschwert sich die Konsole darüber, dass Uncaught ReferenceError: autoComplete is not definiert ist, und bezieht sich dabei auf die Zeile var demo1 = new autoComplete des javascript_tag. Daher greift das Skript auf der Seite nicht auf das im Header geladene Skript zu
Code: Select all
Code: Select all
import AutoCompleteMunController from "./auto_complete_mun_controller"
application.register("auto-complete", AutoCompleteMunController)
Code: Select all
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);
}
});
});
Mobile version