【发布时间】:2017-02-06 23:55:15
【问题描述】:
我想创建一个页面,您可以在其中动态添加 1 到 n 个产品。
我已经使用 AngularJS 工作了几个月,但我很难想到这一点。
我编写的 html 代码是这样的:
https://plnkr.co/edit/2MYbkYeAf4lZSRIh2c8l?p=preview
这是整个模板:
<div class="container text-center">
<h1>Make a sale</h1>
<br>
<form>
<div class = "divedp">
<label for="idNumeroFactura" class="col-form-label" >Invoice number: </label>
<input name="inpNumeroFactura" id="idNumeroFactura" maxlength= "8" type="text" ng-model="numeroFactura" class= "form-control"/>
</div>
<h6 class="small">products</h6>
<div class = "divedp">
<label for="idProducto">Product: </label>
<select name="sltProducto" ng-options ="producto.nombreProducto for producto in productos"
ng-model="producto" class="form-control input-sm" id="idProducto">
<option value="">-Choose the product-</option>
</select>
<br>
<label for= "idCantidad" >Quantity: </label>
<select ng-model="cantidad" id="idCantidad" class="form-control input-sm">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<br>
<button ng-click="showDiv=true; agregarProducto()" class="btn btn-default" ng-hide="showDiv"> Add another product</button>
</div>
<div ng-show="showDiv"> Here should appear the new product</div>
<button ng-click="guardarVenta()" class="btn btn-primary" type="submit">Save sale</button>
</form>
<span >{{mensaje}}</span> <br>
</div>
这是我要重复的部分:
<div class = "divedp">
<label for="idProducto">Product: </label>
<select name="sltProducto" ng-options ="producto.nombreProducto for producto in productos"
ng-model="producto" class="form-control input-sm" id="idProducto">
<option value="">-Choose the product-</option>
</select>
<br>
<label for= "idCantidad" >Quantity: </label>
<select ng-model="cantidad" id="idCantidad" class="form-control input-sm">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<br>
<button ng-click="showDiv=true; agregarProducto()" class="btn btn-default" ng-hide="showDiv"> Add another product</button>
</div>
所以当我点击添加另一个产品按钮时,所有 div 代码部分应该在第一个 div 下方重复。这样,用户就可以根据自己的需要选择所有想要的产品。
我正在考虑创建一个模板,但这已经是一个模板......我正在使用 ui-router 来做路由部分,但我从未在模板中重复模板,我也从未在里面使用过模板一个模板。
此外,这种方法让我有些疑惑:
- 如何连接 Json 数组上的属性? (我使用Json进行前后端通信)
- 如何避免用户重复相同的产品项目?我应该把这个问题交给 AngularJS 控制器还是可以用指令来处理?
感谢阅读。
【问题讨论】: