Я показываю список изображений, используя Angular.Невозможно передать область в диалоговом окне в угловом
При щелчке изображения я хочу отобразить диалог с изображением и дополнительную информацию.
Итак, при открытии модальности мне нужно передать область действия или, по крайней мере, изображение.
Примечание: для всплывающего окна используется ngDialog.
application.controller('ImageController', function ImageController($scope, ImageService, ngDialog) {
$scope.model = {
images: [],
loading: false
}
var load = function() {
$scope.model.loading = true;
ImageService.GetList($scope.model.pages.instagram)
.success(function (data, status, headers, config) {
$scope.model.images = $scope.model.images.concat(data.Images)
})
.error(function (data, status, headers, config) { })
.finally(function() {
$scope.model.loading = false
});;
}
$scope.open = function (image) {
ngDialog.open({
template: '<p>my template {{image.Key}} </p>',
plain: true,
scope: $scope
});
};
load();
});
<div data-ng-app="Application" data-ng-controller="ImageController">
<div data-ng-repeat='image in model.images'>
<img src="{{image.Url}}" alt="" data-ng-click="open(image)"/>
</div>
Изображения отображаются и диалоговое окно открывается по щелчку ...
Однако, так или иначе, я не в состоянии получить доступ к сферы внутри шаблона.
следующие работы:
$scope.open = function (image) {
ngDialog.open({
template: '<p>my template' + image.Key + '</p>',
plain: true
});
};
Но это не работает:
$scope.open = function (image) {
ngDialog.open({
template: '<p>my template {{image.Key}} </p>',
plain: true,
scope: $scope
});
};
Кто-нибудь есть какие-либо идеи, почему?
Я не смог понять это.
Ну, если у вас есть HTML для диалога включен в качестве дочернего ImageController, вы сможете получить доступ к сферам контроллера. Другим методом, который вы можете использовать, является использование $ broadcast/$ emit для перемещения данных вниз и вверх. – SoluableNonagon
Когда вы говорите «если у вас есть html для диалога, включенного в качестве дочернего элемента ImageController», вы имеете в виду как пример 1? Потому что это работает ... –
Я создал свой второй пример, прочитав следующее: https://github.com/likeastore/ngDialog#scope-object Итак, я не уверен, что мне не хватает ... –