【问题标题】:Dart Polymer 1.0 - Two-way binding works?Dart Polymer 1.0 - 双向绑定有效吗?
【发布时间】:2015-10-16 12:23:54
【问题描述】:

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

当我更改 .dart 中的字段 @Property(nofity: true) 时,它不会反映(更改)到 .html 中的 {{}}。

请看下面的例子。

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

ma​​in_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>

ma​​in_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";
  }
}

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

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

     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

    不确定它的用途。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多