Ваш порядок скобок неверен. Попробуйте это:
function addressLengthWrong(address) {
let keys = ['street', 'city', 'state', 'zip']
return keys.reduce((acc, key) => acc + (address[key] ? address[key].length : 0), 0)
}
Вы должны заключить все троичное выражение в круглые скобки, иначе будет включен acc
.
Кроме того, процитирую ответ Андреаса:
... + ... precedence: 13, ... ? ... : ... precedence: 4; the higher value 'wins'
Вы действительно упоминали на стороне сервера - GWT и чаши Грааля на самом деле не интегрируются хорошо на серверной стороне (не, а также Вы могли бы ожидать данный как хорошо работа объектов области чаш Грааля). Для RPC плагин это работает действительно хорошо.
проблема состоит в том, что объекты области не могут быть сериализированы и переданы через провод - в конце концов, они отличные объекты. Вы должны будете к пользовательскому сделать объект передачи данных (DTO) и делаете маршалинг вручную. Возможно автоматизировать его, но нет никакого открытого исходного кода там, который делает это, банкомат - настолько прокручивающийся Ваше собственное является единственным решением.
Или видят, можно ли заставить Hibernate4gwt работать с чашами Грааля - но я сомневаюсь, что он будет из поля также.
с преимуществами динамических языков (Groovy) может действительно уменьшить сумму (шаблона) код, который должен быть записан
, Это - то, каких людей от лагеря RoR проповедовал все время. После некоторого начального бума проекты RoR вошли в неизбежную проблему с большими проектами. Чем большие проекты, тем больше работы нужно делегировать к компилятору, т.е. более ценными являются статические языки. В настоящее время бум RoR почти уводят.
сумма (дополнительного) кода необходимо записать теперь с JPA/Hibernate, например, почти нуль. Аннотации только. Это даже находит отображенные бобы само, во времени выполнения, через путь к классу! SpringFramework делает многих другим "шаблоном" codepieces устаревший также.
В моем проекте GWT (один до сих пор, имейте для принятия), я использую JPA (В спящем режиме), уровень DAO, бизнес-шаблон делегата, и это легко и устойчиво.
Другой подход: использовать Grails с SmartGWT. Вместо GWT-RPC (слишком сложного и, как отмечали другие, плохо сочетающегося с Grails) используйте интеграцию на основе REST, поскольку Grails имеет отличную поддержку сериализации в XML или JSON, а SmartGWT имеет встроенную поддержку REST. Взгляните на этот блог с примерами исходников - это до смешного просто для создания многократно используемого экрана master-detail для любого объекта Grails.