代码如下:
$scope.$watch($scope.getWidth, $scope.adjustSidebar);
$scope.adjustSidebar = function (newValue, oldValue) {
if (newValue >= mobileView) {
if (angular.isDefined($cookieStore.get('sidebarToggle'))) {
$scope.sidebarToggle = $cookieStore.get('sidebarToggle');
} else {
$scope.sidebarToggle = true;
}
} else {
$scope.sidebarToggle = false;
}
};
如果我将 $scope.adjustSidebar 的定义作为 $watch 的第二个参数插入,代码可以正常工作。一旦我尝试像这样提取它,代码就会中断(即 $scope.adjustSidebar 不会在事件触发时执行)。为什么是这样?如果我将函数存储在变量中并使用变量作为参数或使用实际定义作为参数有什么区别?
提前致谢。
最佳答案
将回调移动到函数调用之后。
$scope.adjustSidebar = function (newValue, oldValue) {
if (newValue >= mobileView) {
if (angular.isDefined($cookieStore.get('sidebarToggle'))) {
$scope.sidebarToggle = $cookieStore.get('sidebarToggle');
} else {
$scope.sidebarToggle = true;
}
} else {
$scope.sidebarToggle = false;
}
};
$scope.$watch($scope.getWidth, $scope.adjustSidebar);
关于javascript - 回调函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30202640/