web-dev-qa-db-fra.com

Passer des données via la fonction modale ouverte Angular uibModal

J'essaie de comprendre comment passer unit_number dans le modal lorsqu'il apparaît. Je suis assez nouveau avec Angular et je suis un peu confus avec ce que resolve: et group: font et comment je peux inclure le numéro d'unité dans cette déclaration de retour.

    $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 () {
  });
};
13
Justin Christian

Vous utilisez ui-bootstrap

Composants d'amorçage écrits en pur AngularJS

Pour passer une variable au contrôleur d'un modal, vous devez utiliser

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

Et puis vous pouvez accéder à cette variable "A" à partir du contrôleur du modal en l'injectant

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

Découvrez: https://angular-ui.github.io/bootstrap/#/modal

Résoudre:

Les membres qui seront résolus et transmis au contrôleur en tant que sections locales; c'est l'équivalent de la propriété de résolution du routeur.

Et le groupe n'est qu'un membre (cela peut être tout ce que vous choisissez)

31
WalksAway

Ajoutez simplement une propriété dans l'objet de résolution unitNumber avec une fonction renvoyant unit_number en tirer profit. Pour que vous puissiez obtenir le unit_number valeur dans AddTenantModalCtrl en injectant unitNumber une dépendance dans la fonction d'usine du contrôleur.

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

Remarque: Ne faites pas directement unitNumber: unit_number, car lorsque vous avez cela, angular DI essaiera de rechercher la dépendance avec le nom unit_number (valeur) et Il essaiera de l'évaluer comme fonction. Résultat, vous obtiendrez $injector erreur dans la console.

4
Pankaj Parkar