当前位置: 首页 > 面试题库 >

是否可以“监视”属性”更改

柯英奕
2023-03-14
问题内容

是否可以“监视”指令上的ui更改?像这样的东西:

.directive('vValidation', function() {
    return function(scope, element, attrs) {
        element.$watch(function() {
            if (this.hasClass('someClass')) console.log('someClass added');
        });
    }
})

问题答案:

是。您可以使用attr.$observe,如果你在属性利用插值。

但是,如果这不是一个插值属性,并且您希望它可以从应用程序中的其他位置更改(绝对不建议这样做,请阅读Common
Pitfalls
),那么$watch函数可以返回:

scope.$watch(function() {
    return element.attr('class'); 
}, function(newValue){
    // do stuff with newValue
});

无论如何,对您来说最好的方法可能是更改更改元素类的代码。它何时更改?



 类似资料:
  • 在JavaScript中是否可以监听属性值的更改?例如: 我想响应属性中的任何更改。 我已经阅读了对象,以及该对象的替代对象(包括使用动画事件的对象)。据我所知,它们是关于实际DOM的更改。我更感兴趣的是对一个特定DOM元素的属性更改,所以我不认为仅此而已。当然,在我的实验中,这似乎不起作用。 我希望在没有jQuery的情况下这样做。 谢谢

  • 问题内容: 我一直在类设计方面遇到问题,直到我发现了可观察的(使用观察者设计模式),因此使用它创建了一个小型应用程序,从而解决了我的问题。我为使用一个好的原则解决问题感到高​​兴和自豪。 为什么建议张贴者不要使用可观察的,而要告诉他们使用propertychangelistenr?使用observable是否有任何问题? 问候 问题答案: 观察者和侦听器模式非常相似。但是观察者有一个弱点:所有可观

  • 问题内容: 是否可以在Java属性文件的下一行继续长字符串? 例如,以某种方式 当我得到它时,它将返回“ Hello World”? 问题答案: 行尾的反斜杠使您可以跨越多行,而以行开头的空格将被忽略: 在Java文档这样说: 逻辑行包含一个键元对的所有数据,这些数据可以通过用反斜杠字符将行终止符序列转义而分布在几条相邻的自然线上。

  • 问题内容: 就像一个类似的SO问题一样,我正在尝试监视Linux机器上的目录以添加新文件,并希望在这些新文件到达时立即对其进行处理。关于实现此最佳方法的任何想法? 问题答案: 看inotify。 使用inotify,您可以监视用于文件创建的目录。

  • 问题内容: 我需要以编程方式启动新的Java进程并动态设置JMX端口。所以不要这样做 我想做以下 但这不起作用。知道为什么吗? 问题答案: 在调用代码时,您已经错过了配置jmxremote连接器的机会。 您需要做的是创建您自己的rmi注册表和JMXConnectorServer来侦听rmi调用并将它们传递给MBeanServer。

  • 问题内容: 首先,我想说我想做的事情可能不被认为是好的做法。但是,我需要执行类似的操作,以便以较小的增量步骤将大型Web应用程序迁移到AngularJs。 我试着做 其中myVar是全局变量(在窗口上定义) 然后从控制台更改myVar。但是只有在首次设置观察者时才会触发。 如果我从控制器内部更新myVar(请参阅http://jsfiddle.net/rasmusvhansen/vsDXz/3/)