我在Service.js有10名学生及其排名数据。我希望用户选择排名范围,然后我会根据他们的排名范围向他们显示相关的学生信息。例如,如果他们从等级2到等级5中选择,则他们只会看到等级2到5的学生信息。
由于我的数据库中只有10名学生,我想在输入中将最低等级限制为10。因此,我需要Service.js(后端)中的数据(对象)的长度返回到html(Front)。
代码已更新。
我的service.js位于以下位置:
(function(angular){
angular.module('Service', [])
.factory('ServiceFun', function(){
var Objects = [
{rank: 1, name: 'id1'},
{rank: 2, name: 'id2'},
{rank: 3, name: 'id3'},];
var len = function (){
len = 0;
for (var i in Objects){
if (Objects.hasOwnProperty(i)){
len++;}
};
return len;
};
return{Objects: Objects,
len : len,};
});
})(window.angular)
我的Controller.js位于以下位置:
(function(angular) {
angular.module('PModule', ['Service'])
.controller('BetweenController', ['ServiceFun', function(ServiceFun) {
this.high = 3;
this.low = 1;
this.Objects = ServiceFun.Objects;
this.count = function count(){
return ServiceFun.len;
}]);
})(window.angular);
我调用Controller的html主要部分如下:
<body data-ng-app="PModule">
<div data-ng-controller="BetweenController as value">
<div>
<span>the highest ranking which you expected</span>
<input type="number" min ="1" data-ng-model="value.low" required>
<br/>
<span>the lowest ranking which you expected</span>
<input type="number" min ="1" max = "value.count()" data-ng-model="value.high" required>
<div><h3>Show selected table</h3>
<table class="ranking">
<tr>
<th>Rank</th>
<th>Number</th>
</tr>
<tr data-ng-repeat="c in value.Objects" data-ng-if=" c.rank > value.low-1 && c.rank < value.high+1">
<td>{{c.rank}}</td>
<td>{{c.name}}</td>
</tr>
</table>
</div>
</div>
</div>
</body>
我之前的问题文字在这里:
我使用Angular JS要求用户输入最低等级和最高等级,然后我将向他们显示所选范围内的相关数据。当然,允许输入的最低等级数应受我数据库中最低等级(数据库长度)的限制。这就是问题所在!
我在服务中硬编码了一些数据(对象/数组)。我想将服务中此对象的长度传递给我的控制器。然后在我的View(html)中,我可以通过从Controller获取它来将此信息用作我的最大输入数字(最低排名数)。但它没有用。
我尝试了另一种更简单的方式,例如&#34; this.count = ServiceFun.Objects.length&#34;在控制器中,但它也不起作用。
在使用$ scope之前,我读过有人回答了类似的问题。$ watch;但在我的情况下,我没有$ scope和数据在服务中。在我的AngularJS 1.5.7版本中,我也没有找到$ watch。
答案 0 :(得分:0)
(function(angular) {
angular.module('PModule', ['Service'])
.controller('BetweenController', ['ServiceFun', function(ServiceFun) {
this.high = 3;
this.low = 1;
this.Objects = ServiceFun.Objects;
this.count = ServiceFun.len;
}]);
})(window.angular);
对象不是对象