在我的控制器中,我有一个对象数组(我才刚刚开始,所以如果这太天真了,请原谅我):

$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上定义函数,但是我不确定那是什么样子,因此非常感谢您的帮助。谢谢。

最佳答案

一种方法是让updateProperties具有一个参数,该参数是与投票相关的投票的唯一标识符。处理点击行为的逻辑将驻留在updateProperties内,这将由您根据所需定义。该函数只是一个标准的javascript函数,可以在您的控制器内部定义,例如

$scope.updateProperties = function(pollID){...},只要它所在的控制器在您从其开始调用的页面部分中处于活动状态,就可以使用该功能。

在主页上查看Angular Docs及其模型(我认为主页上的一个可能对您有用)。

08-17 12:44