【问题标题】:How to submit angular material chips as array when particular form submission?提交特定表单时如何将角材料芯片作为数组提交?
【发布时间】:2017-01-12 23:07:38
【问题描述】:

我想像这样以 json 对象的形式提交以下表单:

object { id:1, version:0, roomNo:1, availability:"available", facility:{'a', 'b', 'c', 'd'} }

我的表单图片如下

angular material chips form image

<div flex="10" id="lenth">
    <div ng-controller="roomController as controller" ng-cloak="" class="inputdemoErrors">
        <div class="card">

            <form  ng-submit="controller.submit()" name="roomForm" >

                <input type="hidden" ng-value="roomDTO.id" ng-model="roomDTO.id" />
                <input type="hidden" ng-value="roomDTO.version" ng-model="roomDTO.version" />
                <md-toolbar class="md-hue-2" ><div class="md-toolbar-tools"><span>{{roomHomeTitle}}</span></div></md-toolbar>
                <div id="formBody">
                    <md-input-container class="md-block">
                        <label>Room no</label>
                        <input type="text" md-maxlength="30" required="" md-no-asterisk="" name="roomNo" ng-value="roomDTO.roomNo"  ng-model="roomDTO.roomNo"> 
                    </md-input-container>
                    <md-input-container class="md-block">
                        <label>Availability</label>
                        <input  type="text" md-maxlength="50" required="" md-no-asterisk="" name="availability" ng-value="roomDTO.isAvailable" ng-model="roomDTO.isAvailable">
                    <md-input-container class="md-block" ng-init="controller.getAllFacilitiesForRoom()">
                   <lable> Room Facility</lable>
                           <md-chips class="custom-chips" ng-model="controller.facilityList" readonly="controller.readonly" md-removable="controller.removable" >
                               <input type="hidden"  ng-model={{$chip.id}}>
                               <md-chip-template>

                                   <strong>{{$chip.facilityName}}</strong>

                           </md-chip-template></md-chips>
                    </md-input-container>

                    <div align="right">
                        <md-input-container class="md-block">
                            <div layout="row">

                                <md-button type="reset" md-no-ink class="md-warn" >&#10160; Reset </md-button>
                                <md-button type="submit" md-no-ink class="md-primary">&#10004;Create  </md-button>
                            </div>
                        </md-input-container>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

【问题讨论】:

  • 我想知道与控制器绑定的芯片。所以我通过互联网搜索。我无法找到解决问题的正确方法
  • 请同时更新控制器部分。您如何从前端 UI 中捕获选定的芯片。

标签: angularjs arrays json


【解决方案1】:

有几种方法可以解决这个问题。在这里,我提到了从控制器中捕获所选芯片的简单而通用的方法。

yourHTMLPage.html

<md-input-container class="md-block" ng-init="yourCtrl.getValueList()"> 
        <md-chips 
        multiple="true" md-no-cache="true" readonly="readOnly" ng-model="yourCtrl.bindValue"
            md-on-select="yourCtrl.selectedChips($chip)"
            md-on-remove="yourCtrl.deleteChips($chip)" > 
             <md-chip-template>
                <strong >{{$chip.para1}}</strong> 
             </md-chip-template>
    </md-input-container>

controller.js

 vm.selectedChips=function(chip){
    console.log(chip);
    vm.yourDTO.youtList.push(chip); 
    // vm.yourList.push(chip);
 }; 



vm.deleteChips=function(chip){
   console.log(chip);
   vm.deleteFaciltyList.push(chip);
};

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-07-09
  • 2019-05-04
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
相关资源
最近更新 更多