javascript – 从href调用angularjs scope函数

前端之家收集整理的这篇文章主要介绍了javascript – 从href调用angularjs scope函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个将href元素附加到标签上的库.在这个链接上,我需要调用一个范围内的 angularjs函数.就像是…
<a href="{{someFunction()}}"></a>

注意:我通过JavaScript从另一个库(nvd3.js)附加这个href,实际上并不是这样写的,因为我可以很容易地使用ng-click或ng-href.

解决方法

这有点复杂.

CAVEAT:这是非常非常黑客,绝对完全是你不应该做的有角度,但我想你知道,图书馆正在使你的生活艰苦…

首先,与onclick不同,href不会将字符串解释为javascript.相反,你必须使用

<a href="javascript:someFunction()"></a>

但是,这一点不会使它起作用,因为someFunction()不是文档上的方法,而是在控制器上,所以我们需要先获取控制器:

<a href="javascript:angular.element(
         document.getElementById('myController')).scope().someFunction();"></a>

其中myController指的是使用ng-controller装饰的DOM元素,例如

<div data-ng-controller="SomeController" id="myController"> ... </div>

如果someFunction修改视图的状态,您还需要使用$scope.apply,即

<a href="javascript:angular.element(document.getElementById('myController')).
           scope().$apply(someFunction)"></a>

请注意,您不需要{{}}语法,因为您直接调用javascript,您不是要求角度来修改标记.

原文链接:https://www.f2er.com/js/151795.html

猜你在找的JavaScript相关文章