gpt4 book ai didi

javascript - Jquery 和 AngularJs 冲突

转载 作者:行者123 更新时间:2023-12-02 17:02:26 24 4
gpt4 key购买 nike

我刚刚开始研究 AngularJS。在尝试同时使用 Jquery 和 Angularjs 进行测试时,出现了一个问题,AngularJs 似乎以某种方式阻止了 Jquery 干预。

在下面的代码中:我包含一个 jquery anchor 单击事件处理程序,它将阻止 anchor 引导用户。然而, Angular Controller 外部的 anchor 工作正常,而内部的 anchor 却无法运行。

有没有办法在不创建自定义指令的情况下同时拥有 Jquery 和 AngularJs?

html:

<body data-ng-app="AngApp">
<a href="/haha" data-disable>open</a>
<div data-ng-controller="demoCrtl">
<div data-ng-switch on="test")>
<span data-ng-switch-when="1"><a href="#" data-disable>Cancel</a></span>
<span data-ng-switch-default> its default</span>
</div>
</div>
</body>

JavaScript:

    var app = angular.module('AngApp',[]);
app.controller('demoCrtl', ['$scope', function($scope) {
$scope.test=1;
}]);
$('a[data-disable]').on('click',function(e){e.preventDefault();console.log('ha');});

我正在使用 angularjs 1.3 和 Jquery 2.1。

非常感谢,

最佳答案

不要在 Controller 中使用这样的 jQuery 代码。您应该使用 ngClick 指令并将其绑定(bind)到 Controller 中的操作。

您认为:

<a ng-click="disable()" ng-disabled="disabled">disable</a>

在你的 Controller 中

$scope.disabled = false;
$scope.disable = function () {
console.log('disable clicked');

// maybe do something else

$scope.disabled = true;
}

这不会复制您想要执行的操作,而是提供了如何使用 ngClick 指令将 Controller 中的操作绑定(bind)到 View 中的元素以及如何使用 ngDisable 指令禁用元素的示例。

关于javascript - Jquery 和 AngularJs 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25579870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com