gpt4 book ai didi

angularjs - 如何从 ng-repeat 表中获取 $index 到模态 Controller ?

转载 作者:行者123 更新时间:2023-12-01 07:04:28 26 4
gpt4 key购买 nike

我有一个使用 angularjs bootstrap-ui 创建的客户记录表,并使用 ng-repeat。

表格中每一行的末尾都有一个按钮,用于获取有关客户的更多信息。

单击按钮时,会弹出一个带有信息的模式窗体。

我的问题是无论我按下哪个按钮我都会得到相同的客户编号

问题是我需要将 $index 的值获取到以下代码位:

$scope.selected = {
customer: $scope.customers[0]
};

$index的值需要替换上面的0值

到目前为止我所做的可以在 plunker click 上看到 here
<div ng-controller="ModalDemoCtrl">
<script type="text/ng-template" id="myModalContent.html">
< div class = "modal-header" > < h3 > I am a modal! < /h3>
</div > < div class = "modal-body" > < form class = "form-horizontal"
role = "form" > < div class = "form-group" > < label
for = "customerNumber"
class = "col-lg-2 control-label" > Email Address: < /label>
<div class="col-lg-10">
<input type="text" class="form-control" id="customerNumber"
ng-model="selected.customer.customerNumber"
ng-value="selected.customer.customerNumber">
</div > < /div>
</form > < /div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button > < button class = "btn btn-warning"
ng - click = "cancel()" > Cancel < /button>
</div >
</script>
<div>
<table class="table table-striped">
<thead>
<tr>
<th>Customer number</th>
<th>Customer name</th>
<th>Customer last name</th>
<th>Customer first name</th>
<th>phone</th>
</tr>
</thead>
<tbody ng-repeat="customer in customers">
<tr>
<td>{{ customer.customerNumber }}</td>
<td>{{ customer.customerName }}</td>
<td>{{ customer.contactLastName }}</td>
<td>{{ customer.contactFirstName }}</td>
<td>{{ customer.phone }}</td>
<td>
<button class="btn btn-default" ng-click="open()">
Customer details
</button>
</td>

</tr>
</tbody>
</table>
</div>
</div>


'use strict';

angular.module('myApp', ['ui.bootstrap'])
.controller('ModalDemoCtrl', function ($scope, $modal, $log) {


$scope.customers = [
{
"customerNumber": 103,
"customerName": "Atelier graphique",
"contactLastName": "Schmitt",
"contactFirstName": "Carine ",
"phone": "40.32.2555"

},
{
"customerNumber": 112,
"customerName": "Signal Gift Stores",
"contactLastName": "King",
"contactFirstName": "Jean",
"phone": "7025551838"

},
{
"customerNumber": 114,
"customerName": "Australian Collectors, Co",
"contactLastName": "Ferguson",
"contactFirstName": "Peter",
"phone": "03 9520 4555"
}
];

$scope.open = function () {

var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
resolve: {
customers: function () {
return $scope.customers
}
}
});

modalInstance.result.then(function (selectedCustomer) {
$scope.selected = selectedCustomer;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
});

// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.

var ModalInstanceCtrl = function ($scope, $modalInstance, customers) {

$scope.customers = customers;
$scope.selected = {
customer: $scope.customers[0]
};

$scope.ok = function () {
$modalInstance.close($scope.selected.customer);
};

$scope.cancel = function () {
$modalInstance.dismiss('cancel');
}
}

最佳答案

ng-repeat 指令有一个变量

$index

你可以像这样在点击函数中传递这个变量
<button class="btn btn-default" ng-click="open($index)">
Customer details
</button>

你需要在你的方法中接受这个索引作为参数,所以只需添加参数
$scope.open = function (index) {
.... your method body
}

关于angularjs - 如何从 ng-repeat 表中获取 $index 到模态 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com