AngularJS:在表单中绑定不可预测的输入量

时间:2016-05-16 21:03:23

标签: angularjs ionic-framework

我正在通过离子和Laravel服务器进行应用程序。 问题是,我有一个项目列表存储在我的服务器中。在离子应用程序中,我将从服务器请求信息以创建表单。我的代码在这里,

<div ng-repeat="itemGroup in mydata">
    <div class="item item-divider nn-card-header">
        {{itemGroup.name}}
    </div>
    <ion-list>
        <ion-item ng-repeat="item in itemGroup.items">
            <h3>{{ item.name }}</h3>
            <div class="item range range-positive">
                broken
                <input type="range" id="{{ item.idgB }}" min="0" max="{{ item.max }}" ng-model="item.idgB" ng-init="item.idgB=0">
                {{ item.idgB }}
            </div>
            <div class="item range range-positive">
                missing
                <input type="range" id="{{ item.idgM }}" name="volume" min="0" max="{{ item.max }}" ng-model="item.idgM" ng-init="item.idgM=0">
                {{ item.idgM }}
            </div>
        </ion-item>
    </ion-list>
  </div>

mydata是这个json数据:

[{
    "name":"name",
    "items":[{
        "id":1,
        "name":"itemA",
        "max":2,
        "idgM":"m.3.1.1",
        "idgB":"b.3.1.1"
    }]
}]

我的问题是,我不知道如何从输入中获取值,因为我不能使用jquery来查找元素。我知道我将从服务器向应用程序发送项目的所有唯一ID列表。但我不知道如何通过使用字符串变量来获取ng-model数据。

3 个答案:

答案 0 :(得分:0)

你不需要jQuery从输入中获取值,你有你正在循环的对象数组:

itemGroup.items

在您的代码中,您将该数组的每个对象绑定到:

ng-repeat="item in itemGroup.items"
ng-model="item.idgB"
ng-model="item.idgM

然后我希望将这些值设为idgB数组的每个元素的idgMitemGroup.items属性

但是因为你正在使用:

ng-repeat="itemGroup in mydata"

itemGroup(s)本身是mydata数组的元素,然后在你的控制器中为了访问那些输入数据,你应该有这样的东西:

angular.forEach(mydata, function(itemGroup, key) {
  angular.forEach(itemGroup, function(item, key) {
    console.log("First input value: " + item.idgB);
    console.log("Second input value: " + item.idgM);
  });
});

答案 1 :(得分:0)

来自输入的值存储在模型中,因此您不需要查找元素, 你已经使用了绑定。

以下是如何在角度中使用输入的帮助: https://docs.angularjs.org/api/ng/directive/input

答案 2 :(得分:0)

我认为问题已在这里得到解答: How to create an Array with AngularJS's ng-model

如果您对if有任何疑问,请随时在评论中提问