我有一个显示服务器上文件列表的部分页面。我想允许用户选择一个文件并使用 AngularUI 在灯箱对话框中显示它。我不知道如何获取应该正确显示在对话框模板中的文件名。这是我的文件列表html:
<tr ng-repeat="file in files | orderBy:orderProp">
<td><a href='#' ng-click="openInLightbox(file.linkURL)">{{file.name}}</a></td>
</tr>
这是该视图控制器的适用部分:
function FileListCtrl($scope, $http, $dialog)
{
.
.
.
$scope.openInLightbox = function(item){
var d = $dialog.dialog({
modalFade: false,
resolve: {item: function(){ return angular.copy(item); } }});
d.open('dialogs/lightboxTemplate.html', 'LightboxController');
}
}
这是灯箱控制器:
app.controller('LightboxController', ['$scope', 'dialog', 'item', function($scope, dialog, item){
$scope.item = item;
console.log("item:" + item);
$scope.submit = function(){
dialog.close('ok');
};
}]);
这是我的对话模板:
<img src={{item}} />
我有两点不明白:
1) 我在正确选择的第一张图片上看到了一个灯箱,但控制台给出了 404 错误,获取“(图片的 URL 路径)/{{item}}”。所以我得到一个错误,但图像仍然出现。
2)当我在灯箱外点击时,它消失了,我无法重新加载新图像。我认为这是因为没有关闭按钮?
我是否将“项目”范围属性正确绑定到对话框模板中?如果没有,正确的方法是什么?