Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: exkalibr 01. 11. 2019, 11:46:26
-
Zhotovil jsem si stránku s volbama ve formuláři:
hebrew-transliteration.wz.cz (http://hebrew-transliteration.wz.cz)
A nedaří se mi zjistit jak funguje předávání argumentu options v souboru hebrew-transliteration.wz.cz/index_soubory/transliterate.js (http://hebrew-transliteration.wz.cz/index_soubory/transliterate.js)
Například volba "Remove alef (`) from begin/end of word"
na řádku #2408 má být:
if ( remove_border_alef )
element = element.replace(/^\'|\'$/g, '');
Klíčové tam je pole options, ale já furt nemůžu přijít na to co kam mám napsat, aby mi to vracelo ty hodnoty z formuláře:
#1995:
module.exports = (text, options = {'isSeqeunced': true, 'qametsQatan': false, 'lang': 0, 'uppercase_tet': true, 'remove_border_alef': remove_border_alef, 'uppercase': true, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'comments': true, 'alphanum': true}) => {
Taky je tam tato funkce #2057, která má získat ty hodnoty, když kliknu:
$('#input_button').click(function () {
var qametsQatan = $('input[type=checkbox]').prop('checked');
var hebText = $('#input').val();
var hashem = $('#hashem').val();
var uppercase_tet = $('#uppercase_tet').prop('checked');
var remove_border_alef = $('#remove_alef').prop('checked');
var uppercase = $('#uppercase').prop('checked');
var comments = $('#comments').prop('checked');
var alphanum = $('#alphanum').prop('checked');
var lang = 0;
if ($('#lang2').prop('checked'))
lang = 1; else
if ($('#lang3').prop('checked'))
lang = 2; else
if ($('#lang4').prop('checked'))
lang = 3;
var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': true,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });
$('#output').val(transText);
})
Jde mi ale o to, aby to options bylo přístupné na ř. #2246 uvnitř
return array.map( (element, index) => {
#2234:
module.exports = (array, options = {'qametsQatan': false, 'lang':0, 'uppercase_tet': true, 'remove_border_alef': remove_border_alef, 'uppercase': true, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'colon': colon, 'tilde': tilde, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'comments': true, 'alphanum': true}) => {
let qametsQatan = options.qametsQatan;
let lang = options.lang;
let uppercase_tet = options.uppercase_tet;
let remove_border_alef = options.remove_border_alef.checked;
let uppercase = options.uppercase;
let brackets = options.brackets.checked;
let colon = options.colon.checked;
let tilde = options.tilde.checked;
let ignore = false;
console.log(options);
return array.map( (element, index) => {
Jednou to má odkazovat na hodnotu checked, jednou na celý input, já nevím co je třeba, abych tam měl tu aktuální hodnotu...
-
proměnnou remove_border_alef
var remove_border_alef = $('#remove_alef').prop('checked');
nepoužíváte, máte tam natvrdo true
var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': true,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });
zkuste změnit na
var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': remove_border_alef,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });
-
Natvrdo true tam je proto, že kdyby to tam nebylo tak to nebude fungovat jak chci. Je to vynucené. Když zruším vynucení hodí:
haflé' wáfele'
ale ty apostrofy tam být nemají když je ta volba zaškrtnutá.
Tak jsem provedl doporučenou změnu, a je to lepší. V transliterate to teď nese správnou hodnotu (opravil jsem taky identifikátor pro qametsQatan).
Ale ta podmínka mi stále nefunguje
#2409
if ( remove_border_alef )
-
Ale ta podmínka mi stále nefunguje
#2409
if ( remove_border_alef )
řádek 2239 změňte z
let remove_border_alef = options.remove_border_alef.checked;
na
let remove_border_alef = options.remove_border_alef;
-
Díky moc! Už to funguje.