Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 浏览器呈现某个元素后,是否有方法触发函数?_Angularjs - Fatal编程技术网

Angularjs 浏览器呈现某个元素后,是否有方法触发函数?

Angularjs 浏览器呈现某个元素后,是否有方法触发函数?,angularjs,Angularjs,假设我有以下简单的标记: <div ng-class="getClass(currentElement)" ng-click="doSomething(currentElement)"> {{currentElement.someValue}} </div> {{currentElement.someValue} 是否有一种方法可以在每次由于currentElement更改而更改此标记时运行函数?(当currentElement.someValue发生变化时不会发生变

假设我有以下简单的标记:

<div ng-class="getClass(currentElement)" ng-click="doSomething(currentElement)"> {{currentElement.someValue}} </div>
{{currentElement.someValue}

是否有一种方法可以在每次由于currentElement更改而更改此标记时运行函数?(当currentElement.someValue发生变化时不会发生变化)

那么
$scope.watch呢?据

$rootScope.Scope#$watch(watchExpression,[listener],
[反对平等]

注册一个侦听器回调,每当 观察表情变化

或者您也可以尝试自己使用
$scope.on
和$scope.emit`控制事件

$rootScope.Scope#$on(名称、侦听器)

侦听给定类型的事件。有关事件的讨论,请参见$emit 生命周期

$rootScope.Scope#$emit(名称,args)

通过作用域层次结构向上分派事件名称,通知 已注册的$rootScope.Scope侦听器

最终

在高层,指令是DOM元素(例如 属性、元素名或CSS类)来告诉AngularJS的HTML 编译器($compile)将指定的行为附加到该DOM元素 或者甚至转换DOM元素及其子元素


可以通过为特定元素指定ID并检查其属性以进行更改!!您可以考虑其他方法,如<代码> $范围。监视< /代码>和<代码> $SCOEE。< <代码> >。阅读文档,看看这是否就是您想要的。我不想摆弄构造的ID,因为它很快就会变得非常混乱。@EdwinDalorzo我不想使用$scope.watch,因为我想在不止一种情况下使用它,我不希望每个实例都有很多被监视的变量。是的,但这意味着要监视一个变量,但我仍然无法访问DOM元素本身。我可能已经找到了一个涉及指令的解决方案,但我必须先测试它。@Bogdan指令听起来是个不错的计划。“从高层来看,指令是DOM元素(如属性、元素名称或CSS类)上的标记,它告诉AngularJS的HTML编译器($compile)将指定的行为附加到该DOM元素,甚至转换DOM元素及其子元素。”是的,我将从该指令广播一个事件,并在服务中收听它。现在唯一的问题是每当“currentElement”更改时触发指令。。。