我正在使用 Jason Watmore 编写的 angular.js 模态窗口教程中的代码:http: //jasonwatmore.com/post/2016/07/13/angularjs-custom-modal-example-tutorial
我正在尝试在 php 部分中实现 angular.js 模态窗口。这是我认为有问题的代码:
<div id="screenings">
<?php
//MySQL database connection established
...
while ($row = mysqli_fetch_array($result)){
echo "<div class='img_div'>";
echo "<img class='modal_img img_screenings' ng-click=\"vm.openModal('custom-modal-1')\" src='images/".$row['image']."' >";
...
echo "</div>";
}
?>
</div>
<modal id="custom-modal-1">
<div class="modal">
<div class="modal-body">
<img id="popup_img" src="#">
</div>
</div>
<div class="modal-background"></div>
</modal>
<script>
$('.img_div').on("click", function() {
var source = ( $('.modal_img').attr("src") );
alert(source);
$('#popup_img').prop('src', this.src);
});
</script>
第一个问题
while
循环吐出一堆图像。然后,底部的脚本应抓取src
单击的任何图像,然后src
在弹出消息中提醒该图像。但是,它只会提醒循环src
中的第一个图像,while
而不管单击该束的哪个图像。我已经在具有不同属性while
的单独img
元素上在循环之外测试了这个脚本,它在回显循环之外运行良好。src
while
第二个问题
在while
循环ng-click
中,第二个回显语句中有一个不起作用。在我的 app.js 文件中,这是ng-click=\"vm.openModal('custom-modal-1')\"
应该转到的控制器代码(斜线是由于 echo 语句):
app.controller('screeningsController', ['$scope', '$log', "ModalService", function($scope, $log, ModalService){
var vm = this;
vm.message = "Hello World!";
$log.log(vm.message);
vm.openModal = openModal;
vm.closeModal = closeModal;
function openModal(id){
ModalService.Open(id);
}
function closeModal(id){
ModalService.Close(id);
}
};
}]);
在var vm = this;
声明之后,我试图向浏览器控制台输出一条消息作为测试,但它不起作用。也许我的语法错误?