我有这样的表格的一部分
<input type="text" ng-model="gen.name" ng-repeat="gen in movie.genres">
gen
中的 movie.genre
是一个具有2个键值对的对象
Object{
id: 24,
name : insidious
}
如果我在表格提交中取值,我只会获得gen.name
作为值
但我也需要id
gen对象。
那么我该怎样做才能获得它的身份呢? 请注意,ng-repeat中有多个输入值
答案 0 :(得分:0)
您可以使用Array.findIndex()查找具有所选流派名称的对象的ID。
这样的事情应该有效(因为movie.genres
是一个数组而valueFromForm
是你从ng-model
得到的值:
let index = movie.genres.findIndex(gen => gen.name === valueFromForm);
id = movie.genres[index].id;
此代码使用ES6,因此如果您不进行反编译,它需要最新的浏览器。 您可以将此其他版本用于旧版浏览器:
var id = -1;
for (var i=0; i < movie.genres.length; i++) {
if (movie.genres[i].name === valueFromForm) {
id = movie.genres[i].id;
break;
}
}
答案 1 :(得分:0)
以下是您想要的实际示例。我希望这可以帮助您解决问题:
angular.module('submitExample', [])
.controller('ExampleController', ['$scope', '$log', function($scope, $log) {
$scope.movie = {
title: 'Movie Title',
genres: [{
name: 'Action'
}, {
name: 'Drama'
}, {
name: 'Comedy'
}]
};
$scope.submit = function() {
$log.info($scope.movie);
};
}]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.1/angular.min.js"></script>
<div ng-app="submitExample">
<form ng-submit="submit()" ng-controller="ExampleController">
<input ng-model="gen.name" ng-repeat="gen in movie.genres"><br>
<input type="submit" value="Submit">
</form>
</div>
&#13;