Передача данных через открытую модальную функцию Угловая uibModal

Я пытаюсь понять, как передать unit_number в модальный, когда он появится. Я довольно новый с Angular, и я немного смущен тем, что resolve: и group: делают и как я могу включить unit_number в этот оператор return.

    $scope.openTenantModal = function (unit_number) {
  var modalInstance = $uibModal.open({
    animation: true,
    templateUrl: 'views/addtenantmodal.html',
    controller: 'AddTenantModalCtrl',
    size: 'large',
    resolve: {
      group: function () {
        return $scope.group;
      }
    }
  });
  modalInstance.result.then(function () {
  }, function () {
  });
};

Ответ 1

Вы используете ui-bootstrap

Компоненты начальной загрузки написаны на чистом AngularJS

Чтобы передать переменную в модальный контроллер, вам нужно использовать

resolve: {
   A: function() {
       return 'myVal'
   }
}

И тогда вы можете получить доступ к этой переменной "A" из модального контроллера, введя его

controller: ['A', function(A) {
    // now we can add the value to the scope and use it as we please...
    $scope.myVal = A;
}]

Проверьте: https://angular-ui.github.io/bootstrap/#/modal

Разрешить:

Участники, которые будут разрешены и переданы контроллеру как локальные жители; это эквивалентно свойству разрешения в маршрутизаторе.

И группа просто член (это может быть все, что вы выберете)

Ответ 2

Просто добавьте свойство в object объекта unitNumber разрешения с функцией, возвращающей значение unit_number из него. Чтобы вы могли получить значение unit_number внутри AddTenantModalCtrl, введя зависимость unitNumber в заводской функции контроллера.

resolve: {
  group: function () {
    return $scope.group;
  },
  unitNumber: function(){
    return unit_number
  }
}

Примечание. Не используйте непосредственно unitNumber: unit_number, потому что, когда у вас это есть, угловая система DI попытается найти зависимость с именем unit_number (значение) и попытается оценить ее как функцию. В результате вы получите сообщение об ошибке $injector в консоли.