数组对象的变量到使用 AngularJS 的函数返回的相等值
array object's variable to equal value returned from a function using angularJS
正如您将在几秒钟内看到的那样,我是Angular的新手。 我希望 users 数组中的每个对象都有一个值(差值),这是计算用户分数与最高分数之差的函数返回的结果。* 例如,在我的代码中,哈利的相差为 1。我怎样才能做到这一点?
.HTML:
<body>
<div ng-controller="firstCtrl">
<table class="table table-hover">
<thead>
<td>Name</td>
<td>Score</td>
<td>Difference</td>
</thead>
<tr ng-repeat="user in users | orderBy: '-score'">
<td >{{user.name}}</td>
<td >{{user.score}}</td>
<td>{{user.difference}}</td>
</tr>
</table>
</div>
</body>
.JS:
var myApp = angular.module("myApp",[]);
myApp.controller ('firstCtrl', function($scope, PersonService){
$scope.users = PersonService.list();
$scope.difference = function (id) {
PersonService.difference(id);
}
})
myApp.service('PersonService',function(){
var uid = 1;
var users = [{
id: 0,
'name': 'John',
'score': '46',
'difference': 'diff from top'
},{
id: 0,
'name': 'Harry',
'score': '45',
'difference': 'diff from top'
},{
id: 0,
'name': 'Sam',
'score': '43',
'difference': 'diff from top'
}];
//simply returns the contacts list
this.list = function () {
return users;
}
this.difference = function(id){
for (i in users) {
if (users[i].id == id) {
return (Math.max.apply(Math, users.score) - users[i].score);
}
}
}
})
首先,为了有效地提高,你只想获得一次最高分。
因此,引入一个变量来存储此值,而不是为每个用户一遍又一遍地计算它:
var maxScore = getMaxScore(); // I leave the implementation to you as you seem to know how to do this
其次,使用 JavaScript map 函数,将新属性附加到数组上的每个元素:
users = users.map(function(user) {
return user.diff = maxScore - user.score;
});
现在,您有了每个用户带有附加差异属性的用户数组。
如果你只需要在HTML上呈现的差异,另一种更"棱角化"的方法是将maxScore添加到范围中:
$scope.maxScore = getMaxScore();
在 HTML 模板上,将差异作为动态计算值包含在内:
<td>{{maxScore - user.score}}</td>
相关文章:
- 使用返回函数sinde.attr()jquery元素
- 从自执行函数返回函数的Javascript性能命中率
- Node Express Handlebars帮助程序未返回函数的结果
- 未在Firefox中执行PageMethod的返回函数
- 对返回函数的函数感到困惑
- 从承诺返回不返回函数会导致警告
- 从函数返回函数而不调用返回的函数
- Javascript,闭包中的返回函数如何与外部函数连接
- 为什么Coderbyte.com's的Javascript模板喜欢返回函数的原始参数
- 对象函数返回函数而不是值
- 从外部函数(数组)了解返回函数(x)
- 从Javascript类对象返回函数
- 调用Typescript setter don't返回函数,尽管关联的getter可以工作
- 使用依赖注入在 JavaScript 中返回函数
- 通过单击JSP和javascript加载两个返回函数
- 需要说明:无法理解返回函数的javascript
- 简单的onClick返回函数不起作用
- 为什么这个闭包返回函数
- JS函数返回函数供以后使用-未定义参数
- Coffeescription类中的方法返回函数而不是字符串