将uibmodal结果返回给父控制器

时间:2016-12-07 21:33:31

标签: javascript angularjs bootstrap-modal

所以这是我的模态JS:



function modalInstance() {
        var ctrlr = function($scope,$uibModalInstance,inName) {
            var init = function() {
                $scope.modalTmpStep = {
                    pos: 0,
                    body: ''
                };
                $scope.cancelStep = cancelStep;
                $scope.submitStep = saveStep;
            };

            function cancelStep() {
                console.log('closing');
                $uibModalInstance.dismiss('dismissed');
            }
            function saveStep() {
                var submitVar = JSON.stringify($scope.modalTmpStep)
                console.log('submitting')
                $uibModalInstance.close(submitVar);
            }

            init()
        };

        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: 'main/add/stepModal/addModal.html',
            controller: ctrlr,
            size: 'lg',
            backdrop: 'static'
        });

        modalInstance.result.then(function() {
            console.log();
        })

    }




这段代码的最终目标是打印对象" submitVar"在父页面的某个地方,对象可以是字符串或JSON。问题中的所有变量都是使用HTML中的ng-model进行查找。我不知道如何将此值传递回父控制器并需要一些帮助。

目前行console.log('提交')运行,但我不知道submitVar结果的放置位置。我打算将其用作编辑窗口,因此传入一个对象,然后进行编辑并传回,从而改变当前值。

我使用:https://angular-ui.github.io/bootstrap/作为参考,无法找到任何其他文档。

1 个答案:

答案 0 :(得分:10)

result.then对象的modalInstance内,您可以在关闭modalInstance

时返回值
modalInstance.result.then(function(submitVar) {
    console.log("sumbited value inside parent controller", submitVar);
})