javascript - 请帮助在不更改模型值的情况下将 list 发送到服务?

标签 javascript angularjs arrays

我有一个像这样的 json 数组

$scope.tablesData = [
                         {
                             "table_name": 'table1',
                             "charts": 0,
                             "flex_sheet": 0,
                             "dtf": 0
                             },{
                                 "table_name": 'table2',
                                 "charts": 1,
                                 "flex_sheet": 1,
                                 "dtf": 1
                             },{
                                 "table_name": 'table3'

                             },{
                                 "table_name": 'table4'

                             },
                             {
                                 "table_name": 'table5'

                             }]

我有这样的html页面

<div ng-controller="MyCtrl">
  <table class="table">
    <thead class="table-inverse">
      <tr>
        <th>Table Name</th>
        <th>Charts</th>
        <th>FlexSheet</th>
        <th>Dtf</th>
      </tr>
    </thead>
    <tbody>
       <tr ng-repeat="table in tablesData">
          <td>{{table.table_name}}</td>
          <td><input type="checkbox" ng-true-value="1" ng-false-value='0'                     ng-model="table.charts"></td>
          <td><input type="checkbox" ng-true-value="1" ng-false-value='0'  ng-model="table.flex_sheet"></td>
          <td><input type="checkbox" ng-true-value="1" ng-false-value='0' ng-model="table.dtf"></td>
       </tr>
  </tbody>
 </table>

 <input type="button" class="btn btn-info" value="submit" ng-  click="upadateTableInfo()">

</div>

你可以通过http://jsfiddle.net/soumyagangamwar/gpm72kmo/看到这个

我必须在提交点击时将表数据发送到服务。 所以我在 ng-click 中调用了 'updateTableInfo' 方法。

请观察一次数据,即 $scope.tableData。如果我检查了一些值,如第 3、4、5 行(表 3、4、5),然后单击提交按钮,然后 Controller 收到一个包含 5 个对象的数组,每个对象包含 4 个属性,如 table_name,图表、fles_sheet、具有这些值的 dtf。它收到了罚款。

我的问题是在 View 加载之后。如果我没有更改任何值(3、4、5),那么在提交时单击我收到包含 5 个对象的数组,但我收到 3、4、5 个对象,但没有属性 charta、flex sheet、dtf。但是,如果用户没有做任何事情,那么我必须将 0 发送到 post 方法,但对象应包含所有 4 个属性。

最佳答案

只需添加 ng-init 即可将模态值默认设置为 0,如下所示。我希望它能解决您的问题。

 <tr ng-repeat="table in tablesData">
        <td>{{table.table_name}}</td>
        <td><input type="checkbox" ng-init="table.charts = 0"  ng-true-value="1" ng-false-value='0' ng-model="table.charts"></td>
        <td><input type="checkbox" ng-init="table.flex_sheet = 0" ng-true-value="1" ng-false-value='0'  ng-model="table.flex_sheet"></td>
        <td><input type="checkbox" ng-init="table.dtf = 0" ng-true-value="1" ng-false-value='0' ng-model="table.dtf"></td>
 </tr>

检查这个 fiddle :http://jsfiddle.net/gpm72kmo/1/

关于javascript - 请帮助在不更改模型值的情况下将 list 发送到服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193734/

相关文章:

javascript - 用于静态网页的 AngularJS SEO(S3 CDN)

C++指针创建数组

javascript - Laravel 5.1-不显示从列表中选择的图像

javascript - 我怎样才能解构一个 React Prop 并仍然访问其他 Prop ?

javascript - Firestore onSnapshot 返回未定义

javascript - Angularjs : $locationProvider. 哈希前缀 ("!") ;

javascript - 在浏览弹出窗口中旋转图像?

javascript - 以 Angular 获取选中的复选框

C++ 数组未知操作

javascript - 从路径字符串获取所有父路径 - Javascript