6
私はオブジェクト(人など)のリストを持っており、リストに動的に追加したり削除したりします。リスト内のどの項目でも特定のプロパティが変更されたときに、リスト全体でクエリを実行したい。ポリマーダーツを使用して、リスト内のオブジェクトのプロパティの変更をどのように聞くことができますか?
たとえば、リスト内のオブジェクトに「signedAgreement」プロパティが変更されているかどうかを知りたいとします。リスナーを手動で各オブジェクトにアタッチする必要はありません。リストを尋ねたいだけです。これどうやってするの?
マイコード:
library my_element;
import 'package:polymer/polymer.dart';
import 'dart:html';
import 'models.dart';
@CustomTag("my-element")
class MyElement extends PolymerElement with ObservableMixin {
final List people = toObservable([]); // observe adds/removes to the list
final Person newPerson = new Person();
// How can I know when to re-evaluate signedCount?
int get signedCount => people.where((Person p) => p.signedAgreement).length;
void save(Event e, var detail, Node target) {
people.add(new Person.from(newPerson));
newPerson.blank();
}
}
そして、私のモデルオブジェクトは、次のようになります。
library models;
import 'package:polymer/polymer.dart';
class Person extends Object with ObservableMixin {
@observable String name;
@observable bool signedAgreement = false;
Person();
Person.from(Person other) {
name = other.name;
signedAgreement = other.signedAgreement;
}
blank() {
name = '';
signedAgreement = false;
}
}
'ListPathObserver'は廃止予定とマークされています - これを行う新しい方法は何ですか? – mpg