我有一个
angularjs应用程序
我添加了一个按钮到我的应用程序,当用户点击它,弹出屏幕显示.
用户应该从2个下拉列表中选择,所以我有两个值,我需要发送回我的服务打开模态屏幕.
我添加了一个按钮到我的应用程序,当用户点击它,弹出屏幕显示.
用户应该从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); } };
从中可以看出,接近和解雇的方法只接受一个结果参数.所以你必须传递和对象或数组,如果你想通过几个.