Можно ли передать значение из ng.repeat в функцию JavaScript?

0

У меня есть этот раздел:

<tr ng-repeat="data in filtered = (list | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit">
                    <td>{{data.name}}</td>
                    <td>{{data.price}}</td>
                    <td>{{data.img}}</td>

<script type="text/ng-template" id="myModalContent.html">
                    <div class="modal-header">
                        <h3 dir="rtl" align="center">screenshot</h3>
                    </div>
                    <form ng-submit="submit()">
                      <div class="modal-body">
                        <img ng-src="{{data.img}}">
                      </div>
                      <div class="modal-footer">
                          <button class="btn btn-warning" ng-click="cancel()">close</button>
                      </div>
                    </form>
                </script>
                    <button ng-click="open()">open</button>

как бы то ни было, не передавать значение из {{data.img}} в javascript, который открывает модальное окно. есть идеи?

благодарю!!

Теги:
bootstrap-modal

2 ответа

0
Лучший ответ

Я думаю, что для правильного решения этого вам нужно будет передать ссылку на колонку в модальную форму, иначе мы не сможем определить, какое изображение будет показано.

$scope.open = function (imageKey) {
    $modal.open({
        templateUrl: 'myModalContent.html',
        backdrop: true,
        windowClass: 'full',
        controller: function ($scope, $modalInstance, data, imageKey) {
            $scope.data='';
            $scope.data = data;

            $scope.getImage = function () {
                return $scope.data[imageKey];
            }

            $scope.cancel = function () {
                $modalInstance.dismiss('סגור');
            };
        },
        resolve: {
            data: function() {
                // access outer controller scope by using $scope.$parent
                return $scope.$parent.data;
            },
            imageKey: function() {
                return imageKey;
            }
        }
    });
}

В шаблоне (пропустите ключ, который вы хотите использовать):

<button ng-click="open('dioPlusImage')">פתח צילום מסך</button>

В модальном шаблоне:

<img ng-src="{{getImage()}}>"
  • 0
    и что входит в img ng-src в этом типе решения?
  • 0
    Добавлено в ответ. Извините, я случайно добавил imageKey как функцию param
Показать ещё 2 комментария
0

Я вижу, что вы отметили bootstrap-modal, поэтому я предполагаю, что вы его используете.

Вам нужно передать переменную в модальную, используя ключ разрешения, когда вы открываете модальный. Демонстрация для модального должна иметь это.

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

В модульном контроллере вы получаете переменную как услугу

controller('ModalInstanceCtrl', function ($scope, $modalInstance, items)

И затем назначьте его переменной области, чтобы ваш модальный шаблон мог ее видеть

$scope.items = items;

С сайтом, указанным в комментарии:

var ModalDemoCtrl = function ($scope, $modal) {
    $scope.open = function () {

    $modal.open({
        templateUrl: 'myModalContent.html',
        backdrop: true,
        windowClass: 'full',
        controller: function ($scope, $modalInstance, data) {
            $scope.data = data;
            $scope.cancel = function () {
                $modalInstance.dismiss('סגור');
            };
        },
        resolve: {
            data: function() {
                // access outer controller scope by using $scope.$parent
                return $scope.$parent.data;
            }
        }
    });
};
  • 0
    СПАСИБО!!! работает отлично!
  • 0
    NP! Вам нужно будет часто использовать этот шаблон, если вы работаете с модалами.
Показать ещё 16 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню