javascript - 为什么我不能在 ng-click 调用 (AngularJS) 上使用 jQuery 语句?

标签 javascript jquery angularjs

只是想了解为什么在尝试使用 jQuery 函数构建对方法的 ng-click 调用时会出现 undefined 。 这是一个例子:

<a href="#" class="btn btn-default" ng-click="angularMethod($('input[name=__RequestVerificationToken]').val())">...</a>

在我的 ng-controller 上:

$scope.angularMethod = function(token) {
    $log.debug(token);
}

这会在控制台上显示一条未定义消息。

我在 Angular js 文件之前加载了一个完整的 jQuery js 文件。 这不是应该起作用吗?

最佳答案

I have a full jQuery js file being loaded before the angular js file. Wasn't this supposed to be working?

不,ngClick 和类似指令不是 onclick 等属性。它只是一些带有一些字符串值的自定义属性,由 Angular 解析和评估(如果您感兴趣,请参阅 parse.js)。您可以提供的那些表达式将在当前作用域对象的上下文中进行计算。

所以现在您应该能够理解为什么它在您的情况下不起作用。您是否有名为 $ 的范围属性,它基本上指向 jQuery?我猜不会。从技术上讲,您的示例可以工作,但是您不应该像这样混合 jQuery 和 Angular。它只会使您的代码极难阅读和支持。

另请检查这个好问题 “Thinking in AngularJS” if I have a jQuery background?关于在 Angular 中正确使用 jQuery。

关于javascript - 为什么我不能在 ng-click 调用 (AngularJS) 上使用 jQuery 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30216633/

相关文章:

javascript - AngularJS ng-pattern 的正则表达式问题

Javascript - 检查亚马逊对象以查看是否已定义

javascript - 将标题和艺术家与 YouTube 标题分开

jquery post 不工作并且没有错误

javascript - 根据单击的行更改标题值?

javascript - AngularJS 仪表板利用 ng-include 和自己的 Controller

javascript - 将响应式文件管理器与tinymce结合使用 - 创建用户 session

javascript - 如何根据查询字符串参数将元素标记为选中

javascript - "html select required"的 AngularJS 指令

javascript - AngularJS ng-submit 输入键不起作用