Javascript 优化ng重复次数| angularJS
我想根据给定的预定义级别将代码中的所有内容分开,从级别1到级别6,现在我的JSON读取Javascript 优化ng重复次数| angularJS,javascript,html,angularjs,json,Javascript,Html,Angularjs,Json,我想根据给定的预定义级别将代码中的所有内容分开,从级别1到级别6,现在我的JSON读取 $scope.myJson=[{ id: 1, level: 1, name: "any name" }, { id: 2, level: 2, name: "any name" }, { id: 3, level: 2, name: "any name" }....] 现在在我的HTML中,我写了如下内容 <div>level 1 <div ng-
$scope.myJson=[{
id: 1,
level: 1,
name: "any name"
},
{
id: 2,
level: 2,
name: "any name"
},
{
id: 3,
level: 2,
name: "any name"
}....]
现在在我的HTML中,我写了如下内容
<div>level 1
<div ng-repeat="prod in myJson" ng-if="prod.level==1">{{prod.name}}
</div>
</div>
<div>level 2
<div ng-repeat="prod in myJson" ng-if="prod.level==2">{{prod.name}}
</div>
</div>
1级
{{prod.name}
二级
{{prod.name}
以此类推,我只想使用一个ng repeat来根据级别过滤HTML中的所有结果,因为应用程序的结果数(以千为单位)花费了太多的时间来响应您可以在ng repeat中尝试切换,例如:
<div ng-repeat="prod in myJson">
<div ng-switch-on = "prod.level">
<div ng-switch-when="1">
Level 1 {{prod.name}}
</div>
<div ng-switch-when="2">
Level 2 {{prod.name}}
</div>
<div ng-switch-default>
Another level {{prod.name}}
</div>
</div>
</div>
级别1{{prod.name}
级别2{{prod.name}
另一级{{prod.name}
因此,您只需对数据进行一次运行。您可以在ng repeat中尝试一种切换情况,例如:
<div ng-repeat="prod in myJson">
<div ng-switch-on = "prod.level">
<div ng-switch-when="1">
Level 1 {{prod.name}}
</div>
<div ng-switch-when="2">
Level 2 {{prod.name}}
</div>
<div ng-switch-default>
Another level {{prod.name}}
</div>
</div>
</div>
级别1{{prod.name}
级别2{{prod.name}
另一级{{prod.name}
因此,您只需对数据执行一次运行。为了使其更通用,
groupBy
将为您解决此问题
演示:
angular.module('app',['angular.filter']))
.controller('myCtrl',函数($scope){
$scope.myJson=[{
id:1,
级别:1,
名称:“任何名称级别1”
}, {
id:2,
级别:2,
名称:“任何名称级别2”
}, {
id:3,
级别:2,
名称:“任何名称级别2”
}, {
id:4,
级别:2,
名称:“任何名称级别2”
}, {
id:5,
级别:1,
名称:“任何名称级别1”
}, {
id:6,
级别:3,
名称:“任何名称级别3”
}]
});代码>
myJson中的
级别-{key}
-
{{item.name}
为了使它更通用,groupBy
将为您解决此问题
演示:
angular.module('app',['angular.filter']))
.controller('myCtrl',函数($scope){
$scope.myJson=[{
id:1,
级别:1,
名称:“任何名称级别1”
}, {
id:2,
级别:2,
名称:“任何名称级别2”
}, {
id:3,
级别:2,
名称:“任何名称级别2”
}, {
id:4,
级别:2,
名称:“任何名称级别2”
}, {
id:5,
级别:1,
名称:“任何名称级别1”
}, {
id:6,
级别:3,
名称:“任何名称级别3”
}]
});代码>
myJson中的
级别-{key}
-
{{item.name}
我听说ng开关会在内部执行相同数量的比较,如果是这样的话,那会不会使应用程序的速度变慢?我需要在这个位置打印prod.name我不知道angular core的确切原因,但如果你从REST API获得JSON,也许你可以尝试过滤它。这就是问题所在,他们没有创建一个API来执行这样的比较,因此,我必须在UI级别上进行此操作此解决方案的问题是,级别名称显示为number if times,这是不需要的,可以通过简单的orderby获得。我听说ng开关会在内部进行相同数量的比较,如果是这样的话,那会不会使应用程序的速度变慢?我需要在这个位置打印prod.name我不知道angular core的确切原因,但如果你从REST API获得JSON,也许你可以尝试过滤它。这就是问题所在,他们没有创建一个API来执行这样的比较,因此,我必须在UI级别上进行此操作此解决方案的问题是,级别名称显示为number if times,这是不需要的,可以通过简单的orderby Too获得。如果有两个具有相同级别的对象,则它不起作用。确切地说,相同级别上有许多对象level@Vibhor还有@NicolòBosch:正确的观点,所以更新了我的答案groupby
将满足您的需要。如果您有两个具有相同级别的对象,则它不起作用。实际上,在同一级别上有许多对象level@Vibhor还有@NicolòBosch:正确的观点,所以更新了我的答案<代码>groupby
将满足您的需要。