javascript – 在模态角度js中返回多个结果

前端之家收集整理的这篇文章主要介绍了javascript – 在模态角度js中返回多个结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 angularjs应用程序
添加了一个按钮到我的应用程序,当用户点击它,弹出屏幕显示.
用户应该从2个下拉列表中选择,所以我有两个值,我需要发送回我的服务打开模态屏幕.

打开弹出屏幕的服务

app.service('OriginalService',[ '$modal',function ($modal) {

this.openDialog = function(){
        var modalInstance = $modal.open({
            templateUrl: 'ModalScreen.html',controller: 'ModalController'
        });

        modalInstance.result.then(function (oneFilter,secondFilter) {
            this.filtersMananger.oneFilter= oneFilter;
            this.filtersMananger.secondFilter= secondFilter;
        },function () {

        });
    };
}]);

在ModalController中,当我点击OK,我发送了两个值:

app.controller('ModalController',['$scope','$modalInstance',function ($scope,$modalInstance) {

$scope.ok = function () {
        $modalInstance.close($scope.filterMananger.oneFilter,$scope.filterMananger.secondFilter);
    };
}]);

问题是只有第一个值返回到服务.
我在其他例子中看到,也许是有角度的,他们预期只有一个结果:

modalInstance.result.then(function (result)

我可以发送两个或值作为结果,还是只能在这种情况下发送两个值的对象?

解决方法

如果你看看$modal source code你会看到这样的一行:
var modalInstance = {
    result: modalResultDeferred.promise,opened: modalOpenedDeferred.promise,close: function(result) {
        $modalStack.close(modalInstance,result);
    },dismiss: function(reason) {
        $modalStack.dismiss(modalInstance,reason);
    }
};

从中可以看出,接近和解雇的方法只接受一个结果参数.所以你必须传递和对象或数组,如果你想通过几个.

猜你在找的JavaScript相关文章