gpt4 book ai didi

dart - 如何在 Dart/Polymer Dart 中创建可观察的衍生属性?

转载 作者:行者123 更新时间:2023-12-03 03:28:50 27 4
gpt4 key购买 nike

我有一个组件,我想根据一个 bool 值绑定(bind)一个不同的 css 类。我的组件代码中有以下内容:

bindCssClass(div, "open", this, "task.isOpen");
bindCssClass(div, "closed", this, 'task.isClosed');

其中 isOpen/isClosed 定义如下:
@observable bool isOpen = true;
get isClosed => !isOpen;

问题是,我怎样才能让 isClosed 可观察,但基于对 isOpen 的更改?我想知道这种情况,但也想知道更复杂的情况(例如,从多个组件派生的字符串)

此外,对于这种简单的情况,是否有更好的方法使用 bindCss?绑定(bind)到 '!task.isOpen' 不起作用,但如果它这样做会很好。

最佳答案

您可能想从 dart-polymer-dart-examples github repo 中查看 observable_getter 示例。

class App extends Object with ObservableMixin {
@observable
DateTime timestamp;

App() {
bindProperty(this, const Symbol('timestamp'),
() => notifyProperty(this, const Symbol('second')));
}

int get second => timestamp.second;
}


main() {
App app = new App();
new Timer.periodic(const Duration(seconds: 1), (_) {
app.timestamp = new DateTime.now();
});
query('#tmpl').model = app;
}

另请查看讨论: https://code.google.com/p/dart/issues/detail?id=12473

关于dart - 如何在 Dart/Polymer Dart 中创建可观察的衍生属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18679849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com