多次ng重复的插值误差

时间:2014-09-27 10:40:25

标签: javascript angularjs angularjs-ng-repeat angularjs-interpolate

我得到插值错误,但有时只是。我刷新/加载页面几百次没有错误或有时第一次加载它出现并重新加载/ empyting缓存等后再次显示。我无法弄清楚错误的来源是什么以及为什么它似乎随机出现。

错误:[$ interpolate:interr]无法插值:{{showresult(all,two,figs,dates)}} TypeError:日期未定义

指向第10023行:

line 10017: if (hasApply) {
line 10018:    return function() {
line 10019:      var args = [];
line 10020:      forEach(arguments, function(arg) {
line 10021:       args.push(formatError(arg));
line 10022:           });
line 10023:          return logFn.apply(console, args);
line 10024:   };
line 10025: }

JavaScript的:

$scope.showresult = function(all, two, figs, dates) {
    if(typeof(all) != undefined && typeof(two) != undefined && typeof(figs) != undefined && typeof(dates) != undefined){
         var lengthendtwo = 'start_' + two.name;
         var lengthenthree =  dates.text + '_' + figs.name;
         var datesproxy = Object.keys($scope.results[all.id][lengthendtwo])[dates.id];
         var result = angular.fromJson($scope.results[all.id][lengthendtwo][datesproxy][figs.name][lengthenthree]);
         return result;
     }
}

HTML:

<div ng-repeat="all in allz">
 ...
 <div ng-repeat="two in twoz">
  ...
   <div ng-repeat="figs in figsz">
    ...
     <div ng-repeat="dates in datesz">

       {{ showresult(all, two, figs, dates) }}

     </div>

   </div>

 </div>

</div>

编辑:用typeof(all) !== undefined替换angular.isDefined(all)时,控制台中不再出现错误,但结果根本不显示或“未定义”,有些正确返回。我认为这可能是一个计时问题,调用函数时没有定义变量。

替代方法: 我没有从视图中调用函数,而是使用与ng-repeat相同的嵌套结构构建范围变量(数组)。

{{ showresult(all, two, figs, dates) }}

替换为

{{ showresult[$parent.$parent.$parent.$index][$parent.$parent.$index][$parent.$index][$index] }}

它没有错误,但仍想了解原始代码的错误。

0 个答案:

没有答案