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