2015-10-16 76 views
2

Dart Polymer 1.0中的雙向綁定工程 - RC2?飛鏢聚合物1.0 - 雙向綁定的作品?

當我更改.dart中的字段@Property(nofity:true)時,它不會在.html中反映(更改){{}}。

請看下面的例子。

Whem我點擊紙按鈕,it's火clicar,物業文本改變,但{{文本}}不會改變!

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"; 
    } 
} 

回答

3

您需要使用所提供的方法來更新屬性,如

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

notify: true只是通知父元素(觸發test-changed事件)

mixin中有很多這樣的方法,您可以通過擴展PolymerElement自動添加這些方法,並通知Polymer將更改。

  • notifyPath(目前一樣set

對集合有

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

也有

  • get

不知道什麼使用它。

+0

fwiw,'get'讓你讀取給定路徑的屬性值 –

+0

這很容易:),我想知道我何時想使用它。 –