gpt4 book ai didi

javascript - 更改模型时 AngularJS View 不更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:42 25 4
gpt4 key购买 nike

这是 Angular 的一个臭名昭著的问题,网络上有很多文章对此进行解释,但请听我说完。我读过那些,但它们没有用。我有以下内容(我只是在这里简化):

查看:

<div ng-hide="{{beHidden}}"></div>

Controller :

// Set beHidden to initially be false (This works and reflects when set to true as well)

$scope.beHidden = false;

// First we display a popup asking the user to choose whether the div should be hidden

var confirmPopup = $ionicPopup.confirm({
title: 'Hidden Div',
template: 'Do you want to hide the div?',
cancelText: 'No',
okText: 'Yes'
}).then(function(res) {

if(res) {
// User chose to hide div
$timeout(function() {
$scope.beHidden = true;
});
} else {
// User chose NOT to hide div
$timeout(function() {
$scope.beHidden = false;
});
}

});

现在这行不通了。我读过我应该使用 $scope.$apply 方法,但是当我这样做时,我得到了 $digest already in progress 错误。为此,他们说您实际上应该使用 $timeout(function() {//do stuff }); 虽然这不会引发任何错误,但 View 不会更新以隐藏div 当用户选择时。有什么想法吗?

此外,是的,我正在正确地将 $timeout 注入(inject) Controller ......

最佳答案

替换:

<div ng-hide="{{beHidden}}"></div>

与:

<div ng-hide="beHidden"></div>

此外,无需将 beHidden 的更新包装在 $timeout 调用中。

关于javascript - 更改模型时 AngularJS View 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com