Полимерная двусторонняя привязка данных к новому экземпляру объекта не работает

Я пытаюсь выполнить двустороннюю привязку к собственным элементам, и у меня возникают проблемы с тем, что DOM не обновляется при изменении.

Если у меня есть простое свойство, оно отлично работает: <input type="text" value="{{myData::input}}">

Когда я привязываюсь к новому экземпляру объекта и обновляю привязку через javascript, DOM не обновляется:

...

<input type="text" value="{{myData.bar::input}}">
<button type="button" on-click="changeBar">Update Me!</button>

...

var Foo = function(){
    this.bar = "polymer";
}

 Polymer({
            is: 'my-object',
            properties: {
                myData : {
                    type: Object,
                    notify: true,
                    readOnly: false
                }
            },
            ready: {
                  this.myData = new Foo();
            },
            changeBar: function(){
                  this.myData.bar = "poly";
            }

Когда я проверяю this.myData.bar, появляется = "poly". Однако DOM по-прежнему показывает polymer. Кроме того, измененные события не всплывают в родительском компоненте.

Я также пытался написать модуль javascript Foo несколькими способами.

Версия полимера: 1.0.5/1.0.6

Заранее спасибо!


person ermish    schedule 05.07.2015    source источник
comment
Попробуйте заменить this.myData.bar = "poly" на this.set("myData.bar", "poly").   -  person zerodevx    schedule 05.07.2015
comment
Это работает, @zerodevx! Спасибо!   -  person ermish    schedule 05.07.2015


Ответы (1)


Как предложил @zerodevx, я заменил this.myData.bar = "poly" на this.set("myData.bar", "poly")

person ermish    schedule 16.03.2016