如何将angularjs对象绑定到它们的键和值

how to bind angularjs objects to their keys and values

本文关键字:键和值 绑定 angularjs 对象      更新时间:2023-09-26

我读了一些关于角模型绑定的文章,出于好奇,我想知道是否也可以将键绑定到输入,

http://jsfiddle.net/x3azn/jM28y/4/

所以我希望通过输入框更新主arr并实现2路键绑定。

这可能吗?

如本文所述,使用ngRepeat =>不可编辑输入,是的,你可以,但不是那样

试试这个

function ctrl($scope) {
$scope.arr = [{name:'1', lastname: '2'},
              {name:'3', lastname: '4'},
              {name:'5', lastname: '6'}]
}
<div ng-repeat="person in arr">
    <input type="text" ng-model="person.name" />
    <input type="text" ng-model="person.lastname" />
</div>
http://jsfiddle.net/jM28y/5/

不能,不能将键绑定到输入。

我发现你可以做的最接近的事情是滥用ngRepeat的$index属性并将其绑定到输入。您不能更改现有值的键,但可以更改显示的值以及创建新的键-值对。我绝不是在推荐这个解决方案,我只是想分享一下我在调查这个问题时所遇到的一些问题。

JSFiddle: http://jsfiddle.net/DanielBank/v6tFG/

JavaScript:

function ctrl($scope){
    $scope.obj = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        'George': 'Clooney',
    };
}
HTML:

<div ng-app>
<div ng-controller="ctrl">
    <div ng-repeat="value in obj">
        <input type="text" ng-model="$index"/>
        <input type="text" ng-model="obj[$index]"/>
        <input type="text" ng-model="value"/>
    </div>    
    {{obj}}
</div>
</div>