gpt4 book ai didi

javascript - AngularJS - 使用 ng-repeat 根据数字打印输入

转载 作者:行者123 更新时间:2023-11-30 08:47:47 26 4
gpt4 key购买 nike

AngularJS 的新手,对如何使用 ng-repeat 有疑问。

目前我只能找到您从服务中读取的示例,然后 ng-repeat 循环遍历该服务。

我的情况是管理员可以为 guest 创建邀请并设置一个属性:

total_in_party = 4;

现在基于“total_in_party”我想要 3 个输入字段,用于派对中的每位客人

喜欢:

<div ng-repeat="guest in party">
<input type="text" ng-model="guest.first_name" />
<input type="text" ng-model="guest.last_name" />
<select ng-model="selectedGuestMeal" ng-options="meal.id as meal.name for meal in meals"></select>
</div>

对于这种情况,它应该打印这 3 个输入字段 4 次。

我想我已经很接近了,只需要知道如果我还没有存储数据的话如何创建派对对象?

如果我做错了 - 请不要犹豫,告诉我!

最佳答案

我最近不得不解决这个确切的问题。您基本上需要在范围内创建一个 guest 对象数组,然后使用 ng-repeat 将该数组绑定(bind)到一个表单。

在此处查看我的解决方案的工作演示:http://plnkr.co/edit/2aYSLYe0IcRGXR7Lm0HR?p=preview

app.controller('MainCtrl', function($scope) {
$scope.numberOfGuests = 1;
$scope.guests = [];

addGuests($scope.numberOfGuests);

// When the number of guests changes, we want to repopulate the
// array of guest info (in a non-destructive manner).
$scope.$watch('numberOfGuests', function (newValue, oldValue) {
if (!newValue) {
return;
}

newValue = parseInt(newValue, 10);
oldValue = parseInt(oldValue, 10);

// If the number of guests increased, add some empty objects to the array.
if (!isNaN(oldValue) && newValue > oldValue) {
var numberOfGuests = newValue - oldValue;
addGuests(numberOfGuests);
} else {
// Otherwise reset length of array
$scope.guests.length = newValue;
}
});

function addGuests(numberToAdd) {
if (!isNaN(numberToAdd) && numberToAdd > 0) {
for (var i = 0; i < numberToAdd; i++) {
$scope.guests.push({});
}
}
}
});

这是 View

<body ng-controller="MainCtrl">
<form>
<p>Nunmber of Guests <input type="number" ng-model="numberOfGuests" ></p>
<table>
<tr ng-repeat="guest in guests track by $index">
<td>{{$index + 1}}</td>
<td><input type="text" ng-model="guest.name"></td>
<td><input type="text" ng-model="guest.email"></td>
</tr>
</table>
</form>
<pre>{{guests | json}}</pre>
</body>

关于javascript - AngularJS - 使用 ng-repeat 根据数字打印输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532234/

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