4

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

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

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

这可能吗?

4

2 回答 2

4

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

我发现您可以做的最接近的事情是滥用 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>
于 2014-05-14T20:10:05.890 回答
4

如此处所述使用 ngRepeat => uneditable inputs 将输入绑定到基元数组,是的,您可以,但不是那样

尝试这个

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/

于 2014-05-14T00:16:01.650 回答