使用AngularJS在按钮单击上重复代码

德国阿科斯塔

我想创建一个页面,您可以在其中添加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控制器上还是可以用指令处理呢?

谢谢阅读。

斯莱特林

由于您没有显示任何控制器,因此我只能提供解决方案的抽象概念。无论如何,这里。

重复的

使用可以完成对数据收集的简单循环ngRepeat在您的控制器中,您需要操纵集合,Angular会为您传播更改

<div ng-repeat="productBlock in productBlocks track by productBlock.id">
    <!-- your repeated code here -->
    <button ng-click="removeProductBlock(productBlock.id)"> remove </button>
</div>
<button ng-click="addProductBlock()"> add </button>

ngRepeat文档

禁止用户选择重复的产品

您也可以通过在控制器中操作集合来实现此目的。这次,该系列将保留仍可供选择的产品。Angular将帮助您使用ngOptions指令将更改从控制器传播到您的视图

<select 
    ng-options="product as product.label for product in productsAvailable track by product.id"        
    ng-change="selectProduct(product.id)">
</select>

selectProduct方法将负责从productsAvailable集合中删除产品请记住,它还必须“撤回”更新中未使用的任何产品。

ngOptions文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AngularJS在按钮单击上显示(隐藏的)<td>?

来自分类Dev

如何在按钮上运行代码单击Android片段

来自分类Dev

如何在按钮上运行代码单击Android片段

来自分类Dev

UIAlertController在按钮上单击

来自分类Dev

UIAlertController在按钮上单击

来自分类Dev

使用Jquery在按钮单击上显示模态

来自分类Dev

使用Jquery在按钮单击上隐藏/显示Div

来自分类Dev

如何在按钮上单击使用TypeScript

来自分类Dev

使用智能表在按钮的单击事件上搜索数据

来自分类Dev

如何使用JavaScript在按钮单击上显示内容

来自分类Dev

如何使用React Hooks在按钮单击上获取数据

来自分类Dev

使用引导程序将输入集中在按钮单击上

来自分类Dev

在按钮上添加数字单击使用jQuery吗?

来自分类Dev

在按钮上单击使用devexpress xtragrid导出到csv

来自分类Dev

使用javascript在按钮单击上添加文本框

来自分类Dev

使用jquery ajax在按钮单击上的POST表单

来自分类Dev

在按钮上单击多个ListView

来自分类Dev

在按钮单击事件上绑定dxSelectBox

来自分类Dev

在按钮上单击选择tableViewCell

来自分类Dev

在按钮上单击,页面无用

来自分类Dev

在按钮上显示div单击

来自分类Dev

在按钮单击事件上绑定dxSelectBox

来自分类Dev

在按钮上单击隐藏键盘

来自分类Dev

在按钮上单击添加图像到按钮

来自分类Dev

使用JQUERY在按钮单击上打开新选项卡

来自分类Dev

如何使用C#在按钮单击事件上的textBox中设置光标位置?

来自分类Dev

如何使用适配器在按钮单击上添加ListView项目

来自分类Dev

在按钮上单击,我想使用JavaScript将文本字段的值设置为零

来自分类Dev

在按钮单击上设置隐藏变量的值,然后使用.submit()jquery struts提交表单

Related 相关文章

  1. 1

    如何使用AngularJS在按钮单击上显示(隐藏的)<td>?

  2. 2

    如何在按钮上运行代码单击Android片段

  3. 3

    如何在按钮上运行代码单击Android片段

  4. 4

    UIAlertController在按钮上单击

  5. 5

    UIAlertController在按钮上单击

  6. 6

    使用Jquery在按钮单击上显示模态

  7. 7

    使用Jquery在按钮单击上隐藏/显示Div

  8. 8

    如何在按钮上单击使用TypeScript

  9. 9

    使用智能表在按钮的单击事件上搜索数据

  10. 10

    如何使用JavaScript在按钮单击上显示内容

  11. 11

    如何使用React Hooks在按钮单击上获取数据

  12. 12

    使用引导程序将输入集中在按钮单击上

  13. 13

    在按钮上添加数字单击使用jQuery吗?

  14. 14

    在按钮上单击使用devexpress xtragrid导出到csv

  15. 15

    使用javascript在按钮单击上添加文本框

  16. 16

    使用jquery ajax在按钮单击上的POST表单

  17. 17

    在按钮上单击多个ListView

  18. 18

    在按钮单击事件上绑定dxSelectBox

  19. 19

    在按钮上单击选择tableViewCell

  20. 20

    在按钮上单击,页面无用

  21. 21

    在按钮上显示div单击

  22. 22

    在按钮单击事件上绑定dxSelectBox

  23. 23

    在按钮上单击隐藏键盘

  24. 24

    在按钮上单击添加图像到按钮

  25. 25

    使用JQUERY在按钮单击上打开新选项卡

  26. 26

    如何使用C#在按钮单击事件上的textBox中设置光标位置?

  27. 27

    如何使用适配器在按钮单击上添加ListView项目

  28. 28

    在按钮上单击,我想使用JavaScript将文本字段的值设置为零

  29. 29

    在按钮单击上设置隐藏变量的值,然后使用.submit()jquery struts提交表单

热门标签

归档