如何在angularjs中获取对象输入

时间:2016-07-13 10:32:52

标签: javascript angularjs forms input

我有这样的表格的一部分

<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中有多个输入值

2 个答案:

答案 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)

以下是您想要的实际示例。我希望这可以帮助您解决问题:

&#13;
&#13;
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;
&#13;
&#13;