4

私がやろうとしているのは、ng-repeat 内から入力フィールドを更新することです。各ユーザーの ng-repeat 内のボタンを ng-click します。ボタンをクリックすると、ng-repeat の外にあるが同じコントローラー内にある入力フィールドの値を更新する必要があります。私はAngularjsを使い始めたばかりで、ここで簡単なものが欠けているようですが、それを理解することはできません. どんな助けでも大歓迎です!

<div ng-app="MyApp">
    <div ng-controller="Main">
        <form name="myForm">
            <input type="email" ng-model="rootFolders">
            <button type="submit">Submit</button>
        </form> 
        <span ng-repeat="user in users" style="float:left">
            {{user.name}}<br>
            <button ng-click="rootFolders='{{user.login}}'">Load Email</button>
        </span>

    </div>
</div>

コントローラ

angular.module('MyApp', []);

function Main($scope) {
    $scope.rootFolders = 'bob@go.com';
    $scope.users = [
            {id:0,name:'user1',login:'user1@go.com',password:'123456'},
            {id:1,name:'user2',login:'user2@go.com',password:'123456'},
                    ]
}

これがフィドルです:http://jsfiddle.net/DahDC/

4

2 に答える 2

1

ng-repeat 内の ng-click 内で割り当てを行っているため、ローカルスコープ (要素ごとに ng-repeat によってインスタンス化されたもの) に rootFolders プロパティを割り当てていると思います。したがって、実際には ng-repeat のすべてのローカル スコープに新しいプロパティを割り当てます。

これを明示的に表示するためにフィドルを編集しました。良い学習ポイント!

<div ng-app="MyApp">
<div ng-controller="Main">
    <form name="myForm">
        <input type="email" ng-model="rootFolders"> {{ rootFolders }}
        <button type="submit">Submit</button>
    </form> 
    <span ng-repeat="user in users" style="float:left">
        {{user.name}}<br>
        <button ng-click="rootFolders = user.login">Load Email {{ user.login }}</button><br/>
        {{ rootFolders }}
    </span>

</div>

于 2013-07-26T21:56:30.540 に答える