问题: 我想用角UI引导模式将数据传递给角UI模式(灯箱效果)
详情创建模式收藏: 我已经建立了使用NG重复一个照片网格。每个重复的照片使用open()方法打开模式。我正在努力如何将点击项目的范围传递给模式,以便我可以抓取要显示的图像网址。我已经在模态上实现了scope参数,这使我可以访问父级;但是,父项是所单击项目的父范围,并包含网格中所有图像的整个数组。我需要弄清楚如何告诉(以编程方式)已经点击了哪个索引,或只发送子范围到模态。我是一个新手......如果我错过了某些东西,或者有更好的方法来解决这个问题,欢迎任何帮助。
我的HTML:
<section ng-controller="ModalDemoCtrl">
<div ng-repeat="photo in photos.data">
<img src="{{photo.source}}" class="thumbnail img-responsive" ng-click="open()">
</div>
</section>
实例和控制器:
app.controller('ModalDemoCtrl', function ($scope, $modal, $log) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.open = function (scope) {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
scope: $scope,
controller: ModalInstanceCtrl,
resolve: {
items: function() {
return $scope.items;
},
// this returns as undefined
photo: function(){
return $scope.photo;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
});
var ModalInstanceCtrl = function ($scope, $modalInstance, items, photo) {
$scope.items = items;
$scope.photo = photo;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function() {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
console.log($scope);
};
这基本上是范围的外观。我需要的项目索引被深埋,我需要知道(以编程方式)哪个被点击。我需要关闭来源索引[0]
$scope
--$parent
---$parent
----$photos
-----$$v
------data
-------0
--------Source
-------1
-------2
-------3
-------4
-------5
-------6
-------7
-------8
这样做...从功能中删除$范围!谢谢你指出。你知道为什么$ scope不是必需的吗?我会认为任何对scope属性的引用都需要$ scope – Kram62
@ user2679704你正在打开open函数参数中的'photo'。并且你正在ng中点击html中的照片。整个控制器只有一个范围是将特定照片放在$范围内并不合理。 – rob
这与MightySchmoePong指出的基本相同的解决方案 – rob