【问题标题】:Watch for element visibility change in angulardart注意 angulardart 中的元素可见性变化
【发布时间】:2016-01-03 11:47:08
【问题描述】:

我有与 angularjs (Angular - Watch for ngShow/ngHide Changes in Ancestors that Affect Child DOM Element's Visibility) 完全相同的问题,但在我的情况下,我们使用的是 angulardart。我似乎无法在 angulardart 中观看函数。当我尝试这样做时,我从表达式解析器中得到一个错误,指出“{”是意外的。有没有更好的方法在angulardart中做到这一点?如果没有,怎么看类似angularjs的功能?

我尝试了以下代码,但没有成功:

scope.watch("() { return _element.hidden; }", (value, _) {
        print(value);
});

解析器错误:[() 中第 2 列的意外标记) { return _element.hidden; }]

scope.watch("(scope) { return _element.hidden; }", (value, _) {
        print(value);
});

解析器错误:'{' 是 [(scope) { return _element.hidden; 中第 9 列的意外标记}]

我们正在使用 angular.dart 1.1.2

【问题讨论】:

  • 没有看到您的代码,我无法提供帮助。最有可能的是,您有一个额外的(或缺少){ 字符,使程序寻找函数的闭包。我建议使用可能突出括号的 IDE 来梳理您的代码。
  • 什么角度版本? Dart 的 Angular.dart 还是 Angular 2?
  • 我的问题不是为了帮助修复语法错误。我更愿意知道基于元素的可见性触发某些代码的正确方法(与原始问题完全一样,除了使用 angulardart)。请不要因为我尝试遵循 angularjs 帖子提供的 angularjs 模式而受到限制。谢谢。
  • 你可以使用 MutationObserver,它会通知 DOM 的变化。参见例如stackoverflow.com/questions/18927901(应该有更多关于SO的例子)
  • 感谢君特!这正是我所需要的。 MutationObserver 没有在我的元素上触发,因为它被 dom 中更靠前的元素隐藏,但我能够遍历 dom 树,识别该元素并观察它。像魅力一样工作。您能否将此作为答案发布,以便我接受?再次感谢。

标签: scope dart watch angular-dart


【解决方案1】:

您可以使用 MutationObserver,它会通知 DOM 更改。例如见In Dart why the code below (about MutationObserver) dose not work?(应该有更多关于SO的例子)

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2023-03-24
    相关资源
    最近更新 更多