2

我正在使用Vaadin 10的 beta3,并且我有一个绑定到组件 (@HtmlImport) 的 html 文件,其中包含<dom-repeat>我有一个paper-radio-group的内部。我希望paper-radio-group#selected-property以两种方式绑定到我的模型,这样当用户选择不同的单选按钮时,它的值将被写回模型。不幸的是,对我来说,它只能作为一种单向模型工作,因为setAOrBProperty()从未调用过 java 端的 setter。有人可以提示我需要做什么才能将新值写入服务器吗?

    <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”&gt;
    <template>
        <div>
            <dom-repeat items=“[[myListOfSomething]]”&gt;
                <div>
                        <paper-radio-group selected="{{item.aOrBProperty}}” allow-empty-selection>
                          <paper-radio-button name=“a”&gt;A</paper-radio-button>
                          <paper-radio-button name=“b”&gt;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>
4

1 回答 1

1

我怀疑这是由 Flow 的安全功能引起的。出于安全原因,不接受来自客户端的任意模型值更改。相反,只有在双向模板绑定(即 )中使用或在相应的 Java getter 上{{propertyName}}显式注释的属性才允许更改。@AllowClientUpdates

查找的逻辑{{propertyName}}对 的内部运作没有任何具体知识<dom-repeat>,因此无法知道{{item.aOrBProperty}}对应于myListOfSomething[*].aOrBProperty

如果我的假设是正确的,您可以通过在模型界面中添加方法@AllowClientUpdates来解决这种情况。getAOrBProperty()

于 2018-04-04T06:24:49.910 回答