Grails: флажок, не задержанный ко лжи

После некоторых настроек, вот что работает для меня:

// lib/js/src/interop/Carousel.js
import React from 'react'
import Slider from 'react-slick'

const Carousel = props => {
  return (
    
      

{props.name} 1

) } export default Carousel // src/Carousel.re [@bs.module "./interop/Carousel"] [@react.component] external make: (~name: string) => React.element = "default"; // handle default export // src/Index.re ReactDOMRe.renderToElementWithId(, "carousel");

Поскольку Carousel.js использует es6 и jsx, мне нужно настроить webpack для работы с ним ( es6 JSX ). И bsconfig.json должны иметь эти настройки:

"reason": {
  "react-jsx": 3
},
"package-specs": [
  {
    "module": "commonjs",
    "in-source": false
  }
]

9
задан Michael Borgwardt 27 February 2009 в 22:39
поделиться

5 ответов

Это - мое собственное решение, в основном обходное решение, которое вручную делает то, что должна делать привязка данных чаш Грааля (но не делает):

Map<String,String> checkboxes = params.findAll{def i = it.key.endsWith("._fixiert")} // all checkboxes
checkboxes.each{
    String key = it.key.substring(0, it.key.indexOf("._fixiert"))
    int tagIdx = Integer.parseInt(key.substring(key.indexOf('[')+1, key.indexOf(']')))
    int zuwIdx = Integer.parseInt(key.substring(key.lastIndexOf('[')+1, key.lastIndexOf(']')))
    if(params.get(key+".fixiert"))
    {
        dienstplanInstance.tage[tagIdx].zuweisungen[zuwIdx].fixiert = true
    }
    else
    {
        dienstplanInstance.tage[tagIdx].zuweisungen[zuwIdx].fixiert = false                    
    }
}

Работы, не требует никакого изменения в чашах Грааля самого, но не является допускающим повторное использование (вероятно, мог быть сделан так с некоторой дополнительной работой).

2
ответ дан 4 December 2019 в 22:30
поделиться

Это - решение парень по имени Julius Huang, предложенный в списке рассылки пользователя чаш Грааля. Это является допускающим повторное использование, но полагается на JavaScript для заполнения скрытого поля с "ложным" ответом для флажка непроверенного, который, к сожалению, не отправляет HTML.

Я взламываю GSP для отправки "лжи", когда снимают флажок (верный-> ложь) с пользовательским TagLib.

Флажком по умолчанию ничего не отправляют, когда снятие флажка, таким образом, я использую флажок в качестве обработчика событий, но отправляю скрытое поле вместо этого.

"params" в Контроллере может обработать "ложь"-> "верный" без любой модификации. например, Все остается тем же в Контроллере.

Пользовательское Использование Тега в GSP (образец usedfunc_F "верен"),

<jh:checkBox name="surveyList[${i}].usedfunc_F" value="${survey.usedfunc_F}"></jh:checkBox>

Вот то, что Тег генерируют,

<input type="hidden" name="surveyList[#{i}].usedfunc_F" id="surveyList[#{i}].usedfunc_F" value="false" />
<input type="checkbox" onclick="jhtoggle('surveyList[#{i}].usedfunc_F')" checked="checked" />

JavaScript

<script type="text/javascript">
function jhtoggle(obj) {
   var jht = document.getElementById(obj);
   jht.value = (jht.value !='true' ? 'true' : 'false');
}
</script>
4
ответ дан 4 December 2019 в 22:30
поделиться

Я думаю, что самое простое обходное решение должно было бы присоединить отладчик и видеть, почему Grails не удается заполнить значение. Рассмотрение Grails является открытым исходным кодом, Вы сможете получить доступ к исходному коду и после того как Вы выясняете решение для него, можно исправить версию.

Я также нашел эту другую ошибку GRAILS-2861, которая упоминает проблему, связанную с привязкой к булевским переменным (см. комментарий Marc в потоке). Я предполагаю, что это - точно проблема, которую Вы описываете.

1
ответ дан 4 December 2019 в 22:30
поделиться

Я создал бы приложение небольшой выборки, которое демонстрирует проблему, и присоедините ее к ошибке Grails (или создайте новую). Кто-то здесь может отлаживать Ваше демонстрационное приложение, или Вы покажете, что ошибка действительно не исправлена.

1
ответ дан 4 December 2019 в 22:30
поделиться

Испытайте это, установите журналы для ОТЛАДКИ, сначала попробуйте первые 3, если они не разоблачают проблему, зеркально отразите их всех для ОТЛАДКИ:

codehaus.groovy.grails.web.servlet="error"  //  controllers
codehaus.groovy.grails.web.pages="error" //  GSP
codehaus.groovy.grails.web.sitemesh="error" //  layouts
codehaus.groovy.grails."web.mapping.filter"="error" // URL mapping
codehaus.groovy.grails."web.mapping"="error" // URL mapping
codehaus.groovy.grails.commons="info" // core / classloading
codehaus.groovy.grails.plugins="error" // plugins
codehaus.groovy.grails.orm.hibernate="error" // hibernate integration

Это должно позволить Вам видеть точно, когда и как установка параметров перестала работать, и, вероятно, выясните работу вокруг.

0
ответ дан 4 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: