2013-10-03 14 views
5

tôi có mã này html:trên sự kiện thay đổi không bắn đúng khi ràng buộc giá trị

<textarea id="text-to-convert" on-change="change" value="{{text}}"></textarea> 

Và mã phi tiêu này:

import "dart:html"; 
import 'package:polymer/polymer.dart'; 

@CustomTag('dictionary-converter') 
class DictionaryConverter extends PolymerElement with ObservableMixin { 

    @observable String text = "Initial text"; 

    void change(Event event, var detail, TextAreaElement textElement) { 
    print(textElement.value); 
    print(text); 
    } 

} 

Trong trường hợp này, sự kiện on-change chỉ kích hoạt theo thời gian. (Tôi chưa biết chính xác khi nào).

Khi tôi xóa liên kết value={{text}}, sự kiện được kích hoạt đúng cách mỗi khi văn bản được thay đổi.

Tôi có thấy cái gì đó hay đây là lỗi không?

Trả lời

7

Với Polymer 0.8+ bạn có thể sử dụng * yourFieldName ** Đã thay đổi. Khi tài sản quan sát thay đổi, phương thức Changed sẽ được gọi. Vì String text là dữ liệu hai chiều bị ràng buộc, việc thay đổi giá trị của vùng văn bản sẽ thay đổi giá trị của String text và gọi phương thức textChanged. Điều này phù hợp với mã ban đầu của bạn và không cần ObservableBox

import "dart:html"; 
import 'package:polymer/polymer.dart'; 

@CustomTag('dictionary-converter') 
class DictionaryConverter extends PolymerElement with ObservableMixin { 

    @observable String text = "Initial text"; 

    textChanged(oldValue) { 
    print("textarea: ${this.shadowRoot.query("textarea").value}"); 
    print("text: ${text}"); 
    } 
} 
0

Rõ ràng tôi phải sử dụng một ObservableBox như mô tả in this stackoverflow question

Vì vậy, tôi đã kết thúc với:

import "package:polymer/polymer.dart"; 
import "package:observe/observe.dart"; 

@CustomTag('dictionary-converter') 
class DictionaryConverter extends PolymerElement with ObservableMixin { 

    ObservableBox csvText = new ObservableBox("Initial text"); 

    ready() { 
    csvText.changes.listen(convert); 
    } 

    void convert(x) { 
    String text = csvText.value; 
    } 

} 
Các vấn đề liên quan