我正在使用 Vaadin 10 的beta3,并且我有一个绑定到Component(@HtmlImport)的html文件,其中包含一个<dom-repeat>
,其中有一个纸无线电组。我希望 paper-radio-group#selected-property 绑定到我的模型的两个方向,这样当用户选择不同的单选按钮时,它的值将被写回到模型。不幸的是,对我来说它只能作为一种单向模型,因为java-side setter setAOrBProperty()
从未被调用过。有人能给我一个提示我需要做什么才能将新值写入服务器?
<link rel="import" href="./bower_components/polymer/polymer-element.html">
<link rel="import" href="bower_components/paper-radio-button/paper-radio-button.html">
<link rel="import" href="bower_components/paper-radio-group/paper-radio-group.html">
<dom-module id=“dmmdl”>
<template>
<div>
<dom-repeat items=“[[myListOfSomething]]”>
<div>
<paper-radio-group selected="{{item.aOrBProperty}}” allow-empty-selection>
<paper-radio-button name=“a”>A</paper-radio-button>
<paper-radio-button name=“b”>B</paper-radio-button>
</paper-radio-group>
</div>
</template>
</div>
</template>
<script>
class BooksGridElement extends Polymer.Element {
static get is() {
return 'books-grid'
}
// only for testing !!
// ready() {
// super.ready();
// this.books = results;
// }
}
customElements.define(BooksGridElement.is, BooksGridElement);
</script>
</dom-module>
答案 0 :(得分:1)
我怀疑这是由Flow的安全功能引起的。出于安全原因,不接受来自客户端的任意模型值更改。相反,只允许在双向模板绑定中使用的属性(即{{propertyName}}
)或在相应的Java getter上使用@AllowClientUpdates
显式注释的属性。
查找{{propertyName}}
的逻辑对<dom-repeat>
的内部运作方式没有任何具体了解,因此无法知道{{item.aOrBProperty}}
对应myListOfSomething[*].aOrBProperty
如果我的假设是正确的,您可以通过在模型界面中的@AllowClientUpdates
方法中添加getAOrBProperty()
来解决此问题。