双向绑定适用于Dart Polymer 1.0 - RC2?
当我在.dart中更改字段@Property(nofity:true)时,它不会在.html中反映(更改)到{{}}。
请参阅以下示例。
我单击纸张按钮,它是 clicar ,属性文本已更改,但 {{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";
}
}
答案 0 :(得分:3)
您需要使用提供的方法更新属性,例如
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
不确定使用它的原因。