9

これは奇妙な問題です。コードは簡単です:

HTML コード:

<body ng-controller="MainCtrl">
  <ul ng-repeat="name in names">
    <input type="text" ng-model="name" />
  </ul>
</body>

角度コード:

app.controller('MainCtrl', function($scope) {
    $scope.names = ["aaa","bbb","ccc"];
});

ライブ デモの URL は次のとおりです: http://plnkr.co/edit/2QFgRooeFUTgJOo223k9?p=preview

入力コントロールを編集できない理由がわかりません。新しい文字を入力したり、文字を削除したりできません。

4

3 に答える 3

3

Angular は 1.1 でこれを $index によるトラックで「修正」しました。モデルを変更する必要はありません。

<div ng-repeat="item in names track by $index">
    <input type="text" ng-model="names[$index]" />
</div>

プランカーはこちら

于 2013-09-22T23:54:10.387 に答える
0

遅い答えですが、タイプミスにも注意する必要があります.angularは警告しません:

<div ng-repeat="item in names track by $index" ng=if="names[$index] = 'John'">
    <input type="text" ng-model="names[$index]" />
</div>

ng-if の単一の等号に注意してください。警告やエラーは発生しませんが、テキストも読み取り専用になります。急いで読んでいると、見つけるのがかなり難しいものです。

もちろん、次のようにする必要があります。

<div ng-repeat="item in names track by $index" ng-if="names[$index] == 'John'">
    <input type="text" ng-model="names[$index]" />
</div>
于 2016-08-11T09:10:52.383 に答える