如何将表单数据从角度ui bootstrap模式传递到视图

use*_*462 15 javascript angularjs angular-ui-bootstrap-tab

我正在创建一个webapp,我想实现一个添加朋友的选项.我已经将添加好友页面创建为带有文本输入字段的模态.我想通过在我的视图页面上显示输入来测试它.如何在我的视图页面上显示此数据?

这就是我现在拥有的

的index.html

<div ng-controller="ModalDemoCtrl">
    <script type="text/ng-template" id="myModalContent.html">
        <div class="modal-header">
            <h3 class="modal-title">I'm a modal!</h3>
        </div>

         <form name = "addFriendForm">
          <input ng-model = "user.name"class="form-control" type = "text" placeholder="Username" title=" Username" />
          {{ user.name }}
        </form>

        <div class="modal-footer">
            <button class="btn btn-primary" ng-click="ok()">OK</button>
            <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
        </div>
    </script>

    <button class="btn btn-default" ng-click="open()">Add Friend</button>
    <div> Username: {{user.name}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的JavaScript文件:

angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('ModalDemoCtrl', function ($scope, $modal, $log) {

  $scope.user = {name: ""}

  $scope.open = function () {

    var modalInstance = $modal.open({
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      resolve: {
        items: function () {
          return $scope.items;
        }
      }
    });

    modalInstance.result.then(function () {
      $scope.user.name = user.name;}, function () {
      $log.info('Modal dismissed at: ' + new Date());
    });
  };
});

angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $modalInstance) {

  $scope.ok = function () {
    $modalInstance.close($scope.user.name);
  };

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };
});
Run Code Online (Sandbox Code Playgroud)

plunkr:http://plnkr.co/edit/JIoiNx47KXsY8aqbTUDS?p=preview

Mat*_*att 20

解决 - plunkr

你可以利用modalInstance自己的resolve财产; 这充当模态实例和父控制器之间的链接.

将对象注入到ModalInstanceController,并将其分配给模式实例的范围.

UI Bootstraps解析与ngRouter完全相同; 因此,如果由于某种原因resolve无法解析对象,模态将无法打开.

var modalInstance = $modal.open({
  templateUrl: 'myModalContent.html',
  controller: 'ModalInstanceCtrl',
  resolve: {
    user: function() {
      return $scope.user;
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

范围 - plunkr

一种替代的,可以说更简单的方法是将父母范围传递给模态.请注意,当controllerAs在父控制器上使用语法时,这当前不起作用.

var modalInstance = $modal.open({
  templateUrl: 'myModalContent.html',
  controller: 'ModalInstanceCtrl',
  scope: $scope
});
Run Code Online (Sandbox Code Playgroud)