Передать простой параметр в угловой UI-Bootstrap модал?
Я вижу много сообщений о публикации многих сложных вещей в модальности ui-bootstrap, но я просто хочу передать простой параметр, чтобы я мог использовать его для отображения различного содержимого в диалоге.
Например, у меня есть основной документ, который имеет MyDocumentController as mydoc
В MyDocumentController
такая функция, как
_this.modals = {
inviteUser: function() {
$modal.open({
animation: true,
templateUrl: 'modules/templates/modals/modal-invite-user.html',
controller: 'UserInviteModalController as invite',
size: 'lg'
});
}, ...
И я называю это в основном документе следующим образом: вот откуда я хочу передать параметр:
<a href="" ng-click="users.modals.inviteUser(returningUser)">
А вот контроллер для модала:
(function() {
'use strict';
angular.module('mymodule')
.controller('UserInviteModalController', function($log, $modalInstance, toastr) {
var _this = this;
_this.someVar = HERE'S WHERE I WANT TO GET THE VALUE returningUser FROM THE NG-CLICK
_this.inviteDialog = {
close: function() {
$modalInstance.close();
},
resendInvite: function() {
toastr.success('A new invite has been sent.');
$modalInstance.close();
}
};
});
})();
Как происходит передача простого параметра в контроллер диалога?
1 ответ
Решение
Попробуйте использовать resolve
:
_this.modals = {
inviteUser: function(returningUser) {
$modal.open({
animation: true,
templateUrl: 'modules/templates/modals/modal-invite-user.html',
controller: 'UserInviteModalController as invite',
size: 'lg',
resolve: {
returningUser: function() {
return returningUser;
}
}
});
}, ...
А затем введите его в свой контроллер:
angular.module('mymodule')
.controller('UserInviteModalController', function($log, $modalInstance, toastr, returningUser) {
var _this = this;
_this.someVar = returningUser;