我已经使用$ watch作为范围变量"active"
来监视更改。在子元素中也使用ng-click="toggleTab()"
。现在,当我单击该子元素时,我尝试观察范围的变化。但它在本地工作。但一生都无法工作。 ng-click
仅有效。代码在下面
<uib-tabset type="tabs" active="active">
<uib-tab index="0" heading="Advertisers" ng-click="toggleTab($event, 'advertisers', '0');">
控制器:
$scope.$watch('active', function(next, prev) {
$scope.submitted = false;
angular.element('#advertisers .tags .input').val('');
nextTabIndex = next;
prevTab = prev;
});
$scope.toggleTab = function() {});
答案 0 :(得分:0)
在此代码中,哪里表明您更改了active
?
毕竟,这是一个变量。
您还遇到toggleTab
函数的问题。您发送了3个参数,但指定的功能不使用任何参数。
active可能是数组或对象(在这种情况下,您将active condition写入错误,因为数组基本上是JS中的对象,而对象始终是真实的。此外,在这种情况下,您需要深入观察通过在回调函数之后添加一个额外的(第3个参数,其值为true,例如:
$scope.$watch('active', callback, true);
目前,您的代码并未按照您希望的那样工作。也很难确切地了解您想要的内容,但是如果您只是想看看实际的$watch()
,请更改active
的值。您只需声明ng-click="active=active+1"
。我认为这是您从代码中看到它的最简单方法。
因此,所有内容都保持不变,但是您拥有了HTML元素:
<uib-tab index="0" heading="Advertisers" ng-click="active=active+1">