Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
优化angularjs中的ng bind指令_Angularjs_Performance_Optimization_Ng Bind_Ng Filter - Fatal编程技术网

优化angularjs中的ng bind指令

优化angularjs中的ng bind指令,angularjs,performance,optimization,ng-bind,ng-filter,Angularjs,Performance,Optimization,Ng Bind,Ng Filter,在我的angular js应用程序中,我有一个对象数组$scope.time,其中包含一个名称、当前时间和另一个定义的毫秒时间。 在前端,我使用ngbind计算这两个时间之间的差异,并以H:m:s格式显示。请运行下面的代码 var-app=angular.module('angularapp',[]); app.filter(“msTotime”,函数(){ 返回函数(时间、开始、结束){ var startDate=新日期(开始); var endDate=新日期(已结束); var Mil

在我的angular js应用程序中,我有一个对象数组
$scope.time
,其中包含一个名称、当前时间和另一个定义的毫秒时间。 在前端,我使用
ngbind
计算这两个时间之间的差异,并以H:m:s格式显示。请运行下面的代码

var-app=angular.module('angularapp',[]);
app.filter(“msTotime”,函数(){
返回函数(时间、开始、结束){
var startDate=新日期(开始);
var endDate=新日期(已结束);
var MilisondsDiff=结束日期-开始日期;
var final=Math.floor(MilisondsDiff/(1000*60*60))。toLocaleString(未定义,{MinimuminedDigits:2})+“:”+(Math.floor(MilisondsDiff/(1000*60))%60)。toLocaleString(未定义,{MiniminedDigits:2}+”:“+(Math.floor(MilisondeDigits:2})。toLocaleString(未定义,{MinimuminedDigits:2});
var defaulttime='00:00:00';
如果(最终=='-01:-01:-01'){
返回时间;
}
否则{
返回最终结果;
}
}
});
应用程序控制器('list',函数($scope,$window){
$scope.time=[{“游戏”:“光环”,“现在”:1554805270181,“时间”:1554794475267},
{“游戏”:“科杜蒂”,“现在”:1554805270181,“时间”:1554802957031},
{“游戏”:“WOF”,“现在”:1554805270181,“时间”:1554732154093},
{“游戏”:“魔兽争霸”,“现在”:1554805270181,“时间”:1554803456875},
{“游戏”:“流行”,“现在”:1554805270181,“时间”:1554803456275},
{“游戏”:“红牛队”,“现在”:1554805270181,“时间”:1554800620012},
{“游戏”:“埃拉贡”,“现在”:1554805270181,“时间”:1554433320072}];
});

{{timer.game}}
毫秒到H:M:S,用于{{timer.game}



我建议使用lodash库在每个对象中附加时间差,而不是使用
指令
这样做。因此,每次从查询中获取数据时,请使用
执行相同的操作,并插入var
realtime

var-app=angular.module('angularapp',[]);
应用程序控制器('list',函数($scope,$window){
$scope.time=[
{“游戏”:“光环”,“现在”:1554805270181,“时间”:1554794475267},
{“游戏”:“科杜蒂”,“现在”:1554805270181,“时间”:1554802957031},
{“游戏”:“WOF”,“现在”:1554805270181,“时间”:1554732154093},
{“游戏”:“魔兽争霸”,“现在”:1554805270181,“时间”:1554803456875},
{“游戏”:“流行”,“现在”:1554805270181,“时间”:1554803456275},
{“游戏”:“红牛队”,“现在”:1554805270181,“时间”:1554800620012},
{“游戏”:“埃拉贡”,“现在”:1554805270181,“时间”:1554433320072}
];
_.each($scope.time,function(obj,index){
var startDate=新日期(目标时间);
var endDate=新日期(对象现在);
var MilisondsDiff=结束日期-开始日期;
var final=数学地板(毫秒刻度/(1000*60*60))。对局部校准(未定义{
最小整数位数:2
})+“:”+(数学地板(毫秒刻度/(1000*60))%60)。对本地校准(未定义{
最小整数位数:2
})+“:”+(数学地板(毫秒刻度/1000)%60)。ToLocalString(未定义{
最小整数位数:2
});
var defaulttime='00:00:00';
如果(最终=='-01:-01:-01'){
obj.realtime=默认时间;
}否则{
obj.realtime=最终;
}
});
});

{{timer.game}}
毫秒到H:M:S,用于{{timer.game}

{{timer.realtime}



您可以在重复循环中使用track by,这样,只有当数据发生变化时,列表才会更新。我将尝试此方法