代码之家  ›  专栏  ›  技术社区  ›  Bernd Hopp

使用Vaadin 10双向绑定纸张单选组/纸张单选按钮值

  •  2
  • Bernd Hopp  · 技术社区  · 7 年前

    我正在使用beta3 瓦丁10 我有一个html文件绑定到一个组件(@HtmlImport),其中包含 <dom-repeat> 里面有一个 纸张无线电组 。我想要 纸张无线电组#选定属性 双向绑定到我的模型,这样当用户选择不同的单选按钮时,它的值将写回模型。不幸的是,对我来说,它只能作为一个单向模型工作,就像java侧设置器一样 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>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Leif Åstrand    7 年前

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

    寻找的逻辑 {{propertyName}} 没有任何关于 <dom-repeat> ,所以它不能知道 {{item.aOrBProperty}} 对应于 myListOfSomething[*].aOrBProperty

    如果我的假设正确,您可以通过添加 @允许客户端日期 getAOrBProperty() 方法。