我正在尝试使用以下代码在点击事件之后查看范围变量值:
$('#teamDetailTabs a').click(function(data) {
$scope.$apply(function(){
console.log($(this).attr('data-target'));
$scope.activeTab = $(this).attr('data-target');
console.log($scope.activeTab);
});
});
问题是,即使我使用$ scope.apply,值$ scope.activeTab也是未定义的。
我该如何解决?
感谢您的任何建议。
答案 0 :(得分:4)
this
调用中的上下文(apply
)不是您所期望的,它不再是a
DOMElement。所以你可以像这样解决它:
var self = this;
$scope.$apply(function() {
console.log($(self).attr('data-target'));
$scope.activeTab = $(self).attr('data-target');
console.log($scope.activeTab);
});
然而,我强烈建议您使用ngClick
并且永远不要在Angular应用中使用jQuery样式方法。看看这个detailed thread。