2015-11-03 97 views
0

我有一个NG-重复打印出的图列表AngularJs - 在工具提示应用范围函数变量时奇怪的错误

<td ng-repeat="field in objectKeys(estimate)" ng-init="amount = estimate[key]"> 
    <a href="#" 
    editable-text="estimate[field]" 

    onaftersave="updateFigure(field,value[field], estimate)" 

    tooltip="${{formatNumber(actualTable[account][field])}}" 

    tooltip-trigger="mouseenter" 

    tooltip-placement="left"> 

     {{formatNumber(estimate[field])}} 
    </a> 
</td> 

的好处是,它完美的作品即打印估计用工具提示显示实际金额。

但是,由于变量actualTable[account][field]为空,控制台不断报告错误,称此{{formatNumber(actualTable[account][field])}}函数调用有问题。但它不为空,否则无法正确打印。

错误的截图是

enter image description here

我还必须补充一点,实际的表数据是通过异步HTTP调用单独要求评估表。

我该如何解决这个问题?

+0

是否'actualTable'通过Ajax填充添加undefined检查? – Reza

+0

通过anm asycn http呼叫是 – nogias

回答

1

尝试

{{ actualTable[account] && actualTable[account][field] && formatNumber(actualTable[account][field]) }} 

或者在你的$scope.formatNumber

$scope.formatNumber = function(data) { 
    if (data) { 
     //your code 
    } 
}; 
+0

嗯,这实际上是一个很好的解决方案 - 我们等待下一个$消化周期来正确掌握数据。谢了哥们。 – nogias

0

这可能是在填充值之前在角度摘要中评估绑定的情况。当您使用 而不是或替代

尝试将控制器作用域中的formatNumber(actualTable [account] [field])值设置为变量,然后将其绑定到工具提示。 Angular表达式语法应该能够处理作用域上的值,而不会记录到控制台错误。

E.g.

$scope.formattedValue = formatNumber(actualTable[account][field]); 

在你的HTML:

tooltip="{{formattedValue}}" 

奖励:您可以使用角度一次性结合(在前面加上“::”你的表情)落摘要周期值,这将有助于保持你的前端迅速。