Angular-ui模态 - 将数据传递给模态

时间:2014-11-04 23:38:59

标签: angularjs modal-dialog angular-ui jquery-isotope

我正在尝试将一些模型数据传递到模态窗口中。当用户点击一个元素时,我想让模态窗口打开,并显示与点击内容有关的更多详细信息。

我创建了一个plunker,除了将数据传递到模态窗口外,它的工作方式非常合理。

我正在尝试使用ng-click传递数据:

<img ng-src="{{item.picture}}" width="100" ng-click="open(item)"/>

任何人都可以帮我吗?或指出我正确的方向?

3 个答案:

答案 0 :(得分:31)

this怎么样?

我将该项目添加到了解决方案

resolve: {
    items: function () {
        return $scope.items;
    },
    item: function(){
        return size;
    }
}

注入controller

之后,$scope.item = item;我在做item

答案 1 :(得分:14)

我已经http://plnkr.co/FzU5SOv3pdZmAPAIOzdo为你做了一个傻瓜。

您希望像处理当前项目一样解析数据。

$scope.open = function (size) {

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

并在模态控制器中确保包含现在已解析的大小对象,如下所示:

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

  $scope.items = items;
  $scope.selected = {
    item: $scope.items[0]
  };
  $scope.size = size;

  $scope.ok = function () {
    $modalInstance.close($scope.selected.item);
  };

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };
});

答案 2 :(得分:0)

对我有用的是在resolve内创建一个对象,该对象返回一个包含我想要共享的变量的对象。

resolve: {
  shared: function(){
    return {
      name: 'Spencer',
      numbers: [1, 2, 3]
    }
  }
}

要访问shared对象,请在定义模态实例控制器时包含它。

app.controller('ModalInstanceController', function($scope, shared, $uibModalInstance,