使用uibmodal控制器绑定模板视图

时间:2017-11-28 12:16:09

标签: angularjs modalviewcontroller

我在我的一个控制器中使用uibmodal,并设法将数据传递给模态控制器。 但是,一旦数据在我的模态控制器中传递,我就无法弄清楚如何在模态模板中渲染这些数据。

我的主控制器:

doEdit = function () {
        var modalScope = $scope.$new(false);
        modalScope.roleModel = self.gridApiRoles.selection.getSelectedRows()[0];

            var modalInstance = $uibModal.open({
                templateUrl: 'views/dialog.html',
                scope: modalScope,
                windowTemplateUrl: 'template/flexModal.html',
                backdrop: 'static',

                resolve: {
                    roleModelScope: function () {
                      return modalScope.roleModel;
                    }
                },

                controller: ['$scope', '$rootScope', 'roleModelScope', DialogEditController],
                controllerAs: 'ctrl'
            });

            modalScope.modalInstance = modalInstance;

            modalInstance.result.then(
                function close(result) {
                    console.info(result);
                },
                function dismiss() {
                    console.info("dialog dismissed");
                }
            );
        }
    };

我的UibModal控制器:

let DialogEditController = function ($scope, $rootScope, roleModelScope) {

  let self = this;

  self.$onInit = () => {
    initTest();
  };

  let initTest = () => {
    console.log(roleModelScope.name);
  };
};

此时,roleModelScope.name已完美传递给模态控制器。

我的模板:

<div class="modal-dialog" style="width:900px; height:750">
  <div class="modal-content">

    <div class="modal-header bg-info">
    </div>

    <div class="modal-body">
        {{roleModelScope.name}}
    </div>

    <div class="modal-footer">
    </div>

  </div>
</div>

我尝试使用ctrl.roleModelScope,但它也没有用。

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

在控制器roleModelScope(上下文)中分配this值,以便它可以在视图上进行绑定。

另外,Modal控制器别名为ctrl{{ctrl.roleModelScope.name}}使用{{roleModelScope.name}}

<div class="modal-body">
    {{ctrl.roleModelScope.name}}
</div>

<强>代码

let initTest = () => {
    this.roleModelScope = roleModelScope;
    console.log(roleModelScope.name);
};