角度$ modal有什么问题?

时间:2015-09-27 13:24:26

标签: javascript angularjs twitter-bootstrap

我想从模态窗口返回放射线框中的一些信息。我为此使用了Angular bootstrap。所以我的代码在关闭模态窗口后不会返回我的radiobox值。

模板代码:

 <div class="modal-header">
    <h3 class="modal-title">Вы уверены, что хотите удалить категорию?</h3>
</div>
<div class="modal-body">
    Выбирете способ удаления
    <div class="form-group">
        <label>
            <input type="radio" ng-model="deleteType" value="this">
            Удалить категорию включая её подкатегории
        </label><br />
        <label>
            <input type="radio" ng-model="deleteType" value="select">
            Удалить категорию и выбрать новую для подкатегорий
        </label><br />
    </div>
</div>
<div class="modal-footer">
    <button class="btn btn-danger" ng-click="ok()">Delete</button>
    <button class="btn btn-default" ng-click="cancel()">Cancel</button>
</div>

我的控制器:

$scope.delCat = function (index,el,current) {

    var modalInstance = $modal.open({
        templateUrl: 'view/category/dialog.html',
        controller: 'modalDialogController',
        size: 'sm',
        resolve: {
            deleteType: function () {
                return $scope.deleteType;
            }
        }
    });
    var deleteOne = function(){
        current.splice(index,1);
    }
    var deleteMore = function(){
        alert('asdfasd');
    }
    modalInstance.result.then(function (deleteType) {
        switch (deleteType) {
            case 'this':
                deleteOne();
                break;
            case 'select':
                break;
        }
    });
};
mainApp.controller('modalDialogController', function ($scope, $modalInstance, deleteType) {
    $scope.deleteType  = 'this';
    $scope.ok = function () {

            $modalInstance.close($scope.deleteType);

    };

    $scope.cancel = function () {

        $modalInstance.dismiss('cancel');

    };
});

函数$ scope.ok()在关闭后不会返回$ scope.deleteType的值。

1 个答案:

答案 0 :(得分:0)

看一下 plunkr 。我用你的代码复制了模态。

存储在deleteType中的单选按钮的值正确传递到result承诺的成功回调