Dart Polymer 1.0 - 双向绑定有效吗?

Dart Polymer 1.0 - Two-way binding works?

双向绑定在 Dart Polymer 1.0 - RC2 中有效吗?

当我在 .dart 中更改字段 @属性(nofity: true) 时,它不会反映(更改)为 .html.[=12 中的 {{}} =]

看下面的例子。

当我点击纸质按钮时,它会触发 clicar,属性 text 已更改,但是{{text}}不变!

main_app.html

<dom-module id="main-app">
  <style>
    :host {
      display: block;
    }
  </style>

  <template>
    <paper-input label="Type something..." value="{{text}}"></paper-input>
    <p>
      Text: <span>{{text}}</span><br />
    </p>
    <paper-button on-click="clicar">cliqueme</paper-button>
    </p>
  </template>
</dom-module>

main_app.dart

@HtmlImport('main_app.html')
library untitled8.lib.main_app;

import 'dart:html';

import 'package:polymer_elements/paper_button.dart';
import 'package:polymer_elements/paper_input.dart';
import 'package:polymer/polymer.dart';
import 'package:web_components/web_components.dart';

@PolymerRegister('main-app')
class MainApp extends PolymerElement {
  @Property(notify: true)
  String text;

  MainApp.created() : super.created();

  @reflectable
  void clicar(e, detail) {
    text = "super teste";
  }
}

您需要使用提供的方法来更新属性,例如

 set('text', "super teste");

notify: true 只是通知父元素(触发一个 test-changed 事件)

PolymerBase mixin 中有很多这样的方法,您可以通过扩展 PolymerElement 自动添加这些方法,并通知 Polymer 有关更改。

  • notifyPath(目前与set相同)

集合有

  • add
  • addAll
  • clear
  • fillRange
  • insert
  • insertAll
  • removeItem
  • removeAt
  • removeLast
  • removeRange
  • removeWhere
  • replaceRange
  • retainWhere
  • setAll
  • setRange

还有一个

  • get

不确定它的用途。