javascript - angularjs回调/等待函数完成

标签 javascript angularjs

我有点被分配给$scope变量的函数所困扰。 需要等到完成。

这是分配给$scope变量函数:

$scope.ChooseHome = function() {
    ModalWindowService.openChooseHomeDialog($scope);
}

在 ModalWindowService 中我有:

function openChooseHomeDialog($scope) {
    $scope.animationsEnabled = true;

    var modalInstance = $modal.open({
        animation: $scope.animationsEnabled,
        templateUrl: '/view/user/ChooseHomeDialog.html',
        controller: 'chooseHomeDialogController',
        windowClass: 'detail-modal-window'
    });
    modalInstance.result.then(function (CondoID) {
        $scope.choosenCondoID = CondoID;
    });
}

我想要做的是在从“$scope.ChooseHome”函数中的模态中获取此变量“$scope.chooseCondoID”并对其进行一些处理后,正确接收该变量“$scope.choosenCondoID”。

像这样的选项:

$scope.ChooseHome = function() {
    ModalWindowService.openChooseHomeDialog($scope).then(*do my stuff*); /
    ModalWindowService.openChooseHomeDialog($scope).success(*do my stuff*);
}

但是它不起作用,我收到这样的错误:

'TypeError: (intermediate value).success is not a function'

最佳答案

试试这个:

function openChooseHomeDialog($scope) {
    $scope.animationsEnabled = true;

    return $modal.open({
        animation: $scope.animationsEnabled,
        templateUrl: '/view/user/ChooseHomeDialog.html',
        controller: 'chooseHomeDialogController',
        windowClass: 'detail-modal-window'
    }).result;
}

$scope.ChooseHome = function() {
    ModalWindowService.openChooseHomeDialog($scope).then(*do my stuff*);
}

而且...就像我评论的...将 $scope 传递给您的服务是一个坏主意。您应该只在 Controller 中使用 $scope 将数据粘合到 View 。服务只需要做一些事情或返回一些您可以使用的东西。

为了让它变得更复杂......你可能还想研究一下controllerAs语法,以便你的代码能够面向 future ;)

关于javascript - angularjs回调/等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053081/

相关文章:

javascript - 在 Angular 1.5 中刷新浏览器时如何保留同一页面?

javascript - 从 1 个 HTML 输入获取多个 JavaScript 变量

javascript - 无需硬编码即可创建数组

javascript - 切换 div 需要点击 2 次。应该是1次点击

javascript - 如何删除选择框中选项元素周围的蓝色边框和蓝色选项颜色

javascript - Angular : how to hide DOM element based on the number of filtered elements in model?

javascript - KOValidation get observable value, $index(), $data 等错误信息

javascript - $ionicPlatform onHardwareBackButton 运行多次

angularjs - 如果动态加载,ASP.NET MVC 包将不会更新

javascript - 如果字符串值包含浮点解析并格式化它,否则返回字符串