我有一个表格,用于显示比赛的条目(从带有PHP的数据库中提取并转换为与AngularJS和JavaScript一起使用的.json对象)。我也想在它上面实现一个模态,所以当"判断"点击每个条目,他们可以看到该条目的详细信息。所以基本上,我需要将一行数据传递给该模态(一个ui.bootstrap模态)。
这里是包含所有数据的表的标记。模态应用于ng-repeated:
<table class="submissions">
<tr class="tb-header">
<td>id</td>
<td>wa #</td>
<td>name</td>
<td>email</td>
<td>file</td>
<td>rating</td>
<td>submitted on</td></tr>
<tr ng-click="open()" ng-repeat="row in rows track by $index">
<td>{{ row.id }}</td>
<td class="wa-num">{{ row.wa_num }}</td>
<td>{{ row.name }}</td>
<td>{{ row.email }}</td>
<td id="submitted-file">{{ row.file }}</td>
<td>{{ row.rating }}</td>
<td>{{ row.submitted }}</td>
</tr>
</table>
这是控制整个页面和模态的控制器:
.controller('dashboard',['$scope', '$rootScope', '$location', '$modal', 'loginService', 'getEntries',
function($scope, $rootScope, $location, $modal, loginService, getEntries){
$scope.open = function () {
var modalInstance = $modal.open({
templateUrl: '/partials/submission_mod.html',
controller: ['$scope', '$modalInstance', function($scope, $modalInstance){
$scope.modalInstance = $modalInstance;
$scope.cats = "Submission info goes here.";
}]
});
};
var entries = getEntries.entries();
entries.save(
function(result){
console.log(result);
//$scope.rows = [];
$scope.rows = result.entries;
console.log($scope.rows);
},
function(result) {
console.log(result);
}
);
}])
这是模态的标记(由于某种原因,此刻并没有拉动任何东西,甚至没有硬编码和#34;猫&#34;):
<div class="modal-entry">{{ cats }}</div>
<button class="btn btn-primary btn-modal" ng-click="modalInstance.close()">Close</button>
问题是:如何将数据传递给该模态?如何定位它以便它只拉动点击的行等?
非常感谢任何指导。
答案 0 :(得分:1)
plinkr有一些关于如何从Angular Bootstrap Directives Docs
执行此操作的信息这样的决心:
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
答案 1 :(得分:1)
最好的方法是将行作为参数传递给模态函数。
<tr ng-click="open(row)" ng-repeat="row in rows track by $index">
...
</tr>
在你的功能中,请记下这一行:
$scope.openModal = function (row) {
var modalInstance = $modal.open({
templateUrl: '/partials/submission_mod.html',
controller: 'ModalCtrl',
resolve: {
cat: function () {
return row;
}
}
});
};
然后转到你的控制器:
.controller('ModalCtrl', function ($scope, $modalInstance, cat) {
$scope.cat = cat;
});