我试图通过AngularJS变量作为参数值在onclick()中调用javascript函数。任何人都可以指导我如何做到这一点?如何通过角度js变量内部的onclick函数作为参数
我的代码:
<div onclick="deleteArrival({{filterList.id}})" class="table-icon deleteIcon">{{filterList.id}}</div>
我试图通过AngularJS变量作为参数值在onclick()中调用javascript函数。任何人都可以指导我如何做到这一点?如何通过角度js变量内部的onclick函数作为参数
我的代码:
<div onclick="deleteArrival({{filterList.id}})" class="table-icon deleteIcon">{{filterList.id}}</div>
您应该使用NG点击,没有理由使用的onclick的角度为您提供使用此功能
<div ng-click="deleteArrival(filterList.id)"
class="table-icon deleteIcon">{{filterList.id}}</div>
然后,您应该将您的功能移动到您的AngularJS控制器,并将其绑定到范围
$scope.deleteArrival = function(filterListId) { ... };
如果你确实需要使用的onclick调用外部功能,您可以将功能改成像这样在你的范围内,仍采用NG-点击上面的属性:
$scope.deleteArrival = function(filterListId) { window.deleteArrival(filterListId); };
但是我看不出理由不将其移动到你的范围
你可以很容易地解决使用ng-click
你的问题,但你应该在你的范围deleteArrival
方法。
标记
<div ng-click="deleteArrival(filterList.id)" class="table-icon deleteIcon">
{{filterList.id}}
</div>
你有效的点..但他没有使用'ng-click' –
是的,我建议他使用'ng-click',因为他正在使用angularJS。 –
我需要使用onclick('hi');喜欢这个。但数据已从ng-repeat中获得,我理解你的想法。但我需要这样的..我想调用javascript function.so,我要求它bro –
试试这个没有花括号 deleteArrival(filterList.id)
它抛出未定义错误bro –
上面的事情是很容易可以利用ng-click
指令,并具有内部控制器范围内该功能,只有一点是,你需要指定你的java-script功能n引用控制器范围变量。无需再次在您的范围内重写该函数。通过函数的引用将会诀窍。
标记
<div ng-click="deleteArrival(filterList.id)" class="table-icon deleteIcon">
{{filterList.id}}
</div>
控制器
//assign javascript method reference in controller
$scope.deleteArrival = deleteArrival;
不允许您创建了事件处理程序绑定属性,如的onclick,onload事件,的onsubmit等,angularjs因为, 绑定这些属性并没有实际价值,并且这样做只会将您的应用程序暴露给XSS等安全漏洞。由于这些原因,在angularjs中不支持绑定到事件处理程序属性(以on和formaction属性开头的所有属性)。
对于你的情况,
内ng-repeat
,使用ng-click
发送值给你的函数并声明功能控制器。
See here for documentation of ng-click
希望这有助于!
有实用价值,至少对于我的情况。的onclick = “legacyOrGlobalMethod({{product.id}})” –
我不会第二次猜测你不使用ng-click的原因,因为其他贡献者已经指出你真的'应该'。但是,如果你真的想要/需要,通过使用'this'和数据属性,我的建议。
<div data-filterListId="{{filterList.id}}" onclick="deleteArrival(this)" class="table-icon deleteIcon">{{filterList.id}}</div>
function deleteArrival(arrivalElem) {
alert('myId=' + arrivalElem.getAttribute("data-filterListId"));
}
我有,我不能使用,由于窗口结合NG点击的情况下。没有得到直接的答案,但下面的确为我工作。我知道这不是一个好的解决方案,但在我的情况下可行。
angular.element(本).scope()。ctrlName.variable
您可以尝试使用自己的类结构。所以点击将是如下:
的onclick = “测试(angular.element(本).scope()ctrlName.ObjName.variable)”
如果你仍然想使用onclick,这是工作对我而言,我希望它也适合你。
<div id="{{filterList.id}}" onclick="deleteArrival(this.id)" class="table-icon deleteIcon">{{filterList.id}}</div>
有什么特别的理由说明你没有使用'onclick'吗?使用'ng-click'应该没问题 –