Javascript 角度视图/范围即使在调用apply时也不更新
所以,我有一个全局函数,它被另一个库调用,我想在调用它时影响我的作用域 在我的控制器中,我有:Javascript 角度视图/范围即使在调用apply时也不更新,javascript,angularjs,Javascript,Angularjs,所以,我有一个全局函数,它被另一个库调用,我想在调用它时影响我的作用域 在我的控制器中,我有: angular.module('myApp') .controller('myCtrl', function ($scope) { $scope.nextAvailable = false; $scope.thirdParty = window.thirdPartyFn = function() { $scope.nextAvailable = true; $
angular.module('myApp')
.controller('myCtrl', function ($scope) {
$scope.nextAvailable = false;
$scope.thirdParty = window.thirdPartyFn = function() {
$scope.nextAvailable = true;
$scope.$apply();
};
});
之后,当我在控制台中记录nextAvailable时,它确实返回true(显然在该函数中,因此我相信它被正确调用了)——但它似乎没有更新封闭控制器中的周围范围。有什么想法吗?
nextAvailable
正在更新。详细说明更新封闭控制器中的周围范围。在我看来,我有一些类似于,ng show=“nextAvailable”,它从不更新。。。我还有一个fn(未显示),它测试nextAvailable,它也认为它是假的。我正在测试它,它工作正常。另外,从全局函数中更新作用域变量的基本方法应该是这样的。当您测试它时,调用window.thirdPartyFn(),它会更新作用域?首先将nextAvailable放入对象中。不要将全局函数与范围函数混为一谈。如果您的全局函数需要对scope函数进行hack调用,请单独声明,在全局函数中找到您的scopeangular.element(“#u scope中的任何_元素”)。scope()
您将需要$scope.$apply在全局函数中。