javascript - 在 Angular.js 中,如何修改对象列表中元素的属性,这些对象在点击时使用 ng-repeat 迭代?

标签 javascript html angularjs

在我的 Controller 中,我有一个对象数组(我才刚刚开始,所以请原谅我是否太幼稚了):

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

我想在 View 中列出这些并在点击时修改一些属性,维护一些复杂的状态以反射(reflect) 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 函数,可以在您的 Controller 中定义,如

$scope.updateProperties = function(pollID){...} 只要它所在的 Controller 在您调用它的页面部分处于事件状态,您就可以使用功能。

查看 Angular Docs ,以及他们在主页上的模型(我认为主页上的模型可能对您有用)。

关于javascript - 在 Angular.js 中,如何修改对象列表中元素的属性,这些对象在点击时使用 ng-repeat 迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975947/

相关文章:

javascript - jQuery Datatables 请求行 '0' 列 '0' 的未知参数 '0'

javascript - sIRF,需要一些帮助

javascript - 如何修复未捕获的类型错误 : Cannot read property 'prototype' of undefined?

javascript - 在javascript中创建一个 "calculation form"

javascript - 使用 $resource 时 Protractor 超时等待与页面同步

javascript - JQuery UI 可选() : Check if only one element is selected

html - 始终将工具提示定位在右下角

html - CSS 菜单 - 自动向左或向右定位?

angularjs - 可以禁用 $locationProvider 和 $routeProvider 吗?

javascript - 为什么在单击之前不加载旋钮的背景颜色? [Angular.js]