8

Próbuję dowiedzieć się, jak przekazać unit_number do modalu, gdy wyskakuje. Jestem całkiem nowy w Angular i jestem trochę zdezorientowany tym, co robią resolve: i group: i jak mogę uwzględnić numer unit_number w tej instrukcji return.Przekazywanie danych przez otwartą funkcję modalną Angularu uibModal

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

Odpowiedz

23

Używasz UI-bootstrap,

elementy Bootstrap napisany w czystym angularjs

przekazać zmienną do kontrolera modal`s trzeba użyć

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

, a następnie można uzyskać dostęp do tej zmiennej "A" ze sterownika modalnego poprzez wstrzyknięcie jej

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

Zamówienie: https://angular-ui.github.io/bootstrap/#/modal

Resolve:

Użytkownicy, że zostanie rozwiązany i przekazywane do kontrolera jako mieszkańców; jest to odpowiednik właściwości resolve w routerze.

i grupa jest tylko członkiem (może to być cokolwiek wybierzesz)

+0

Dzięki za szczegółowe wyjaśnienie. Trochę się poprawiliśmy, ponieważ nasze kontrolery są ustawione nieco inaczej niż standardowe, ale sprawdziły się. W naszej kompilacji mamy wiele modów, więc będzie to bardzo pomocne. –

+0

Zapomnienie o wstrzyknięciu było moim problemem! – JustinJmnz

3

Wystarczy dodać obiekt w resolve obiektu unitNumber z funkcją powracającego unit_number wartości z niego. Aby uzyskać wartość unit_number wewnątrz AddTenantModalCtrl przez wstrzyknięcie zależności unitNumber w fabryce sterownika.

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

Uwaga: Nie bezpośrednio zrobić unitNumber: unit_number, bo gdy trzeba, że ​​kątowa System DI spróbuje poszukać zależność nazwą unit_number (wartość) i będzie starać się ocenić go jako Funkcja. W rezultacie otrzymasz błąd $injector w konsoli.

Powiązane problemy