2

ng-repeat ディレクティブを使用してビューに表示されているフィールド「id」、「name」、および「age」を持つ $scope.data のアイテムのコレクションがあります。アイテムの各セットには、対応する「編集ボタン」があります。

編集ボタンが押された特定の項目セットの値にアクセスできるようにしたいと考えています。

HTML:

<div ng-controller="Ctrl">
    <div ng-repeat="i in data">
        Name: {{i.name}}
        Age: {{i.age}}

        <form ng-submit="submit()">
            <input type="text" ng-model="i.id"/>
            <input type="submit" value="Edit" />
        </form>
    </div>
</div>

脚本:

function Ctrl($scope) 
{
  $scope.data = [
    {id:1,name:"Alex",age:22},
    {id:2,name:"Sam", age:28}
    ];

    $scope.submit = function() {
        //access id of user for which edit was clicked
    };
}

これを行う正しい方法は何ですか?

4

3 に答える 3

6

フォームの代わりに、ボタンを使用することをお勧めします。

<div ng-controller="Ctrl">
    <div ng-repeat="i in data">
        Name: {{i.name}}
        Age: {{i.age}}

        <input type="text" ng-model="i.id"/>
        <button ng-click="submit(i)">Edit</button>

    </div>
</div>

ボタンクリックイベントに送信iするだけです(検証が必要な場合はフォームを使用できると思いますが、例では必要ないようです)。

関数は次のsubmitように変更されます。

$scope.submit = function(selectedItem) {

    // here you now have access to selected item    
};
于 2013-11-09T21:27:42.943 に答える
3

これを試して:

HTML:

<form ng-submit="submit(i.id)">

JavaScript:

$scope.submit = function(userId) {
  // you have userId
};
于 2013-11-09T21:26:18.507 に答える
2

1つのオプションはng-click、送信を渡すボタン内で使用することですi

<div ng-controller="Ctrl">
    <div ng-repeat="i in data">
        Name: {{i.name}}
        Age: {{i.age}}

        <button ng-click="submit(i);">edit</button>

    </div>
</div>

そして機能:

$scope.submit = function(i) {
    console.log(i);
    //access id of user for which edit was clicked
};

これがその作業のフィドルです: http://jsfiddle.net/pRAcP/

于 2013-11-09T21:28:02.350 に答える