标签:jquery javascript angularjs document-ready
当你点击一个复选框时,我想发一些jQuery代码.问题是当我第一次点击选择框加载页面时,没有任何反应.但是当我再次点击时,会执行jQuery代码.我试过设置angular.element(ready)如下,但它不起作用:
angular.element(document).ready(function() {
$http.get($rootScope.appUrl + '/nao/test/test')
.success(function(data, status, headers, config) {
$scope.test = data.data;
});
$scope.testa = function() {
$('.checkboxfisk').click(function() {
var fish = $(this).attr('id');
alert(fish);
});
};
});
<tr ng-repeat="info in test"><td>{{info.stracka}}</td><td>{{info.tid}}</td><td><input type="checkbox" id="{{info.id}}" class="checkboxfisk" ng-click="testa()"></tr>
解决方法:
在Angular中与DOM交互的正确方法是创建自己的自定义指令.然后,您可以在you指令的postLink函数中连接jQuery处理程序(Angular在加载时构建页面时运行).您的处理程序将在那里并在页面准备好时等待.
看一下Angular的指令文档,并给它一个镜头:
AnuglarJS: Developer Guide: Directives
但是,看看你的例子,这可能太多了.根本没有必要让jQuery监听click事件.您只需要在函数定义周围删除jQuery包装器,让Angular处理click事件本身:
$scope.testa = function(id) {
alert(id);
};
然后修改ng-click属性以传递表达式中的id:
<input type="checkbox"
id="{{info.id}}"
class="checkboxfisk"
ng-click="testa(info.id)">
标签:jquery,javascript,angularjs,document-ready 来源: https://codeday.me/bug/20190703/1363887.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。