【问题标题】:how to store html 'select' control input to the JSON object using ng-model in AngularJS?如何在 AngularJS 中使用 ng-model 将 html“选择”控制输入存储到 JSON 对象?
【发布时间】:2014-03-16 12:57:52
【问题描述】:

我正在使用 ng-repeat 将“选择”输入控件绑定到每一行。绑定后,我想使用 ng-model 将“选择”控件中的选定值存储到 JSON 对象。如何实现这一点?

我的代码:

<table>
    <tr ng-repeat="(refreshments,price) in items">
           <td>
             <label>{{refreshments}}</label>
            </td>
            <td style="padding-left:500px">
            </td>
            <td>
              <label>{{price}}</label>
            </td>
            <td class="td_width">
            </td>
            <td>
               <select ng-model="quantity">
                  <option value="0">0</option>
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
                  <option value="4">4</option>
               </select>
            </td>
           </tr>
  </table>

JSON 对象:

var JSONObject= {"quantity":"{{ quantity }}"};

只是我需要在 JSON 对象中绑定选定的数量。 我的 ng-repeat 有不止一行,对于每一行,我都通过 ng-repeat 绑定选择选项。

提前致谢, 斯蒂芬.L

【问题讨论】:

标签: json angularjs


【解决方案1】:

试试这个:

var JSONObject = {};
$scope.$watch('quantity', function(newValue) {
    JSONObject.quantity = newValue;
});

说明

$scope$watch 方法注册了一个侦听器回调,每次更改模型值(在您的情况下为quantity)时都会执行该回调。因此,您可以确定 JSONObject.quantity 属性始终反映实际的 quantity 状态。

您可以在documentation 中找到更多详细信息。

【讨论】:

  • 也许在你的回答中解释原因。
  • @NeilLunn 是的,你是对的。我应该为我的答案写一个解释。谢谢你的评论:)
  • 不工作 :( 问题很简单,我的选择控件在我的 ng-repeat 中。所以我无法获得输入控件的值。如果我们也放置文本输入控件,则不是“选择” ng-model 不工作......还有其他方法还是不可能的?
  • @user2927385 看看this jsFiddle example。这是你需要的吗?
  • @Zub 我得到数量:[ "\n 1\n ", "\n 2\n ", "\n 3\n " ] 当我在使用 ng-repeat 从 JSON 中绑定“选择”如何避免“\n”。代码:
【解决方案2】:

这样做:

var JSONObject = {};
JSONObject.quantity = scope.quantity;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 2016-04-26
    • 1970-01-01
    • 2019-04-20
    • 2023-03-18
    • 1970-01-01
    • 2019-01-09
    • 2016-03-08
    相关资源
    最近更新 更多