gpt4 book ai didi

angularjs - ng-change 前的 Angular 下拉确认

转载 作者:行者123 更新时间:2023-12-01 05:10:35 25 4
gpt4 key购买 nike

我有一个下拉列表,如果用户不想继续,需要取消 ng-change 事件。 previousPortfolioId 值在 $scope 中设置正确,但 View 仍然显示更改的值。我也试过 $scope.$apply ,但没有用。如何取消 ng-change 事件?

模板.html

<select style="width:200px;" ng-model="SelectedPortfolioId" ng-change="PortfolioSelectionChange(SelectedPortfolioId)" ng-options="Portfolio.BlendId as Portfolio.BlendName for Portfolio in Portfolios">
</select>

Controller .js
$scope.PortfolioSelectionChange = function (SelectedPortfolioId) {
var previousPortfolioId = $scope.SelectedPortfolioId;
if ($scope.IsPageDirty) {
var promise = DisplayConfirmation('Your unsaved changes will be lost. Do you want to continue?');
promise.done(function () {
// do something
});

promise.fail(function () {
// cancel the change
$scope.SelectedPortfolioId = previousPortfolioId;
});
}
};

最佳答案

我实际上不喜欢我的答案(我在这里寻找更好的答案!),但据我所知,没有什么比 event.cancel 更能调用的了。在更改事件期间编辑变量似乎并不需要,所以我最终做的是将 $timeout 传递给我的 Controller 并将更改排队:

    promise.fail(function () {
// cancel the change
$timeout(function () {
$scope.SelectedPortfolioId = previousPortfolioId;
}, 0);
});

关于angularjs - ng-change 前的 Angular 下拉确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426132/

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