Angularjs 使用带有ng repeat的ng模型时,如何调用该值?角JS

Angularjs 使用带有ng repeat的ng模型时,如何调用该值?角JS,angularjs,Angularjs,如果我使用ng repeat,我有一个ng模型无法在控制器中调用的问题。正如您在下面可以看到的,在sports部分中,当表单在controller中提交时,我得到了未定义的sports值,但是对于需求,我得到了我在字段中输入的任何内容,这意味着它得到了值。 我试图通过id识别,但它不起作用 <form ng-submit="sendDetails(sports, demands)" ng-class="form-horizontal" enctype="multipart/form-dat

如果我使用ng repeat,我有一个ng模型无法在控制器中调用的问题。正如您在下面可以看到的,在sports部分中,当表单在controller中提交时,我得到了未定义的sports值,但是对于需求,我得到了我在字段中输入的任何内容,这意味着它得到了值。 我试图通过id识别,但它不起作用

<form ng-submit="sendDetails(sports, demands)" ng-class="form-horizontal" enctype="multipart/form-data">
<div class="row">
    <div class="form-group col-md-6">
        <label class="control-label col-sm-2">Sports:</label>
        <input class="form-control" ng-model="sports" ng-repeat="sports in selectedSports" type="text" disabled/>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <input class="form-control" ng-model="demands" type="text"/>
    </div>
    <div class="col-md-6">
        <button class="btn btn-default" type="submit">Submit</button>
    </div>
</div>
</form>
控制器

$scope.sportsValues =[];
$scope.sendDetails = function($sports, $demands){
    if($demands.length > 0 ){
        var sendDetailsPromise = sportsFactory.sendDetails($sports, $demands);
        sendDetailsPromise.success(function (data){
            $sportsValues = data;
};

这可能是因为通过您的每个循环每次都指定相同的模型。您需要将循环的$index与模型结合使用:

<input class="form-control"
  ng-model="sports[$index]"
  ng-repeat="sports in selectedAttributes track by $index"
  type="text" disabled />


尽管我确信您已经意识到,禁用后,输入永远不会从您提供的模型中实际更改(假设它不是空的)。

处理对象数组最常用的方法是让
ng模型使用每个对象的属性:

角度模块(“应用程序”,[]) .controller(“ctrl”,函数($scope){ $scope.itemList=[ {name:'apple',value:11}, {name:'orange',值:22}, {名称:'peach',值:33}, ]; })

ng重复演示
{{item.name}

{{itemList}json}
由于
ng repeat
创建子作用域并将
ng model
放在这些子作用域上,代码出现问题。记住最佳实践:在ng模型中始终放置一个点
。读取。服务器需要使用
多部分/表单数据发布是否有某些原因?使用AngularJS默认值
application/json
进行POST更有效。
selectedSports
数组是对象数组还是原语数组?@georgeawg嗨,我正在使用表单POST,在那里获取这些值,我声明了多部分/表单数据。是否有其他选择(我将查看application/json)?selectedSports是一个对象数组。您好,谢谢您的回复,但它仍然给我未定义的值或任何空值。您的控制器代码在哪里?你显示了工厂,但我没有看到控制器。嗨,它在工厂的初始阶段没有给出值,但是我现在已经用控制器编辑了代码。请随意查看控制器。谢谢谢谢,我会试一试的。
<input class="form-control"
  ng-model="sports[$index]"
  ng-repeat="sports in selectedAttributes track by $index"
  type="text" disabled />