【问题标题】:Model binding not working in Angular UI Bootstrap modal模型绑定在 Angular UI Bootstrap 模式中不起作用
【发布时间】:2015-05-03 22:24:24
【问题描述】:

我有一个使用 Angular UI Bootstrap 模式服务的简单示例。在这个例子中,我不明白为什么模型绑定不起作用。而不是在模态对话框上看到“做某事......”我看到“{{message}}”。我需要改变什么?

示例在这里: http://plnkr.co/edit/fJhS3e7At11tJTuNSWAB?p=preview

模态 html 看起来像这样:

<div ng-app="myModule">
    <div ng-controller="modalInstanceController" class="modal-body">
        <div>{{message}}</div>
    </div>
</div>

以及模块和控制器的定义:

var myAppModule = angular.module('myModule', ['ui.bootstrap']);

myAppModule.controller('modalInstanceController', function ($scope, $modalInstance, message) {
    var vm = this;
    vm.message = message;
});

myAppModule.controller('myController', function ($scope, $modal) {


        $scope.open = function open() {

            var modalInstance = $modal.open({
                templateUrl: 'modal.html',
                backdrop: 'static',
                //windowClass: 'custom-modal-wait',
                dialogFade: false,
                keyboard: false,
                controller: 'modalInstanceController',
                resolve: {
                    message: function () {
                        return "Doing something ...";
                    }
                }
            });

            setTimeout(function(){
                modalInstance.close('close');
                },5000);
        }

});

【问题讨论】:

    标签: javascript angularjs angular-ui-bootstrap


    【解决方案1】:

    要使用你传递给模态的值,你需要把它放在它的范围内,所以把模态控制器设置成这样:

    myAppModule.controller('modalInstanceController', function ($scope, $modalInstance, message) {
        $scope.message = message;
    });
    

    并从 modal.html 中删除 ng-controller,当您创建模态实例时,您已经为他分配了一个控制器

    ng-controller="modalInstanceController"
    

    您的固定示例:http://plnkr.co/edit/vnfL72EBMXsQ1NzlJNEF?p=preview

    【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多