JS投票系统{{绑定}}在点击时给出空值
JS vote system {{bindings}} gives null on click?
该错误未显示在开发人员工具中,因此我想这可能与数据本身及其读取方式有关。{{upVote}} 和 {{downVote}} 都以没有值开头,并在单击时显示 null。不知何故,按钮都链接了?我正在为每个项目设置每票。
背景投票系统,具有单独的上下分数(不作为单一投票分数净额)。希望分数保留在数据库中。
我没有考虑过限制每个用户的投票,但如果您有想法,请随时包含在您的回复中。谢谢!
该 JS 文件
$scope.upVote = function () {
if ($scope.voteType == "down") {
$scope.upVote++;
}
$scope.upVote++;
$scope.voteType = "up";
};
$scope.downVote = function () {
if ($scope.voteType == "up") {
$scope.downVote++;
}
$scope.downVote++;
$scope.voteType = "down";
};
帖子在 scope.post 美元中保存为:
$scope.post = {
title: '',
upVote: 0,
downVote: 0
};
该按钮在 html 中如下所示:
<i ng-click="downVote()"
class="fa fa-chevron-circle-down fa-2x"
ng-class="{true:'downVote', false:''}[vote=='downVote']"></i>
$scope
在控制器范围内是相同的。它在upVote
内不会改变。
angular.module('starter').controller('PostCtrl', function($scope, Post) {
$scope.posts = Post.all;
$scope.upVote = function () {
$scope.upVote++; // NOT the upVote property of the clicked post
...
};
});
你会想从这样的$scope.posts
中获取帖子:
angular.module('starter').controller('PostCtrl', function($scope, Post) {
$scope.posts = Post.all;
$scope.upVote = function (post) {
post.upVote++;
...
};
});
在 ng 重复中传递post
:
<div class="row" ng-repeat="(postId, post) in posts">
<i ng-click="upVote(post)" ...></i>
...
</div>
这样,您将引用点击的帖子,而不是$scope
本身的属性。
相关文章:
- 映射数组ES6时考虑空值
- Model中的Typeahead返回空值以形成输入字段
- JavaScript-HTML表单到JSON(空值)和格式
- webkit输入类型=在错误日期发送空值的日期
- 为什么数据列表选项的id返回空值
- 如何使用敲除映射将空值映射到空的可观察数组
- 完整日历:在启动时传递空值
- 为什么此函数会过滤掉“空”值
- 通过 Yii2 表单插入数据时获取空值
- 从角度服务返回空值的变量
- Math.min.apply 返回 0 表示空值
- Angular材质md日期选择器中的空值
- 提示时检测空值
- Sails.js beforeValidate()清空值参数
- 为什么jQuery attr('href','#')设置了一个空值而不是#
- 正则表达式以避免HTML标记和空值
- sequelize-foreignkey允许空值
- 删除php数组中的空值
- 如何删除angularjs中对象的空值
- JS投票系统{{绑定}}在点击时给出空值