1

私のコントローラーには、オブジェクトの配列があります(私は始めたばかりなので、これがひどく素朴であるか何かである場合はご容赦ください):

$scope.links = [
    {
        'votes': 6,
        'voted_on': false
    },
    {
        'votes': 7,
        'voted_on': false
    }
];

これらをビューに一覧表示し、クリック時にいくつかのプロパティを変更して、DOM の変更を反映した複雑な状態を維持したいと考えています。

<ul>
    <li ng-repeat="link for links">
        <a ng-click="updateProperties()">Vote</a>
        {{link.votes}}
    </li>
</ul>

ご存知のように、私はupdateProperties()多くのステートフル ロジックを管理したいと考えています ( の色を変更し{{link.votes}}、インクリメントlink.votesし、すでに投票している場合はインクリメントを許可しないなど)。関数を定義する必要があることはわかりました$scopeが、それがどのようになるかわかりません。助けていただければ幸いです。ありがとう。

4

2 に答える 2

2

1 つの方法はupdateProperties、投票が関連する投票の一意の識別子であるパラメーターを持たなければならないことです。クリックの動作を処理するロジックは内部にupdatePropertiesあり、必要に応じて定義するのはあなた次第です。関数は単なる標準の JavaScript 関数であり、コントローラー内で次のように定義できます。

$scope.updateProperties = function(pollID){...}これが存在するコントローラーが、呼び出し元のページの一部でアクティブである限り、関数を使用できます。

Angular Docsとそのモックアップをメイン ページで確認してください (メイン ページにあるものが役に立つと思います)。

于 2013-04-12T16:12:58.933 に答える