2015-11-03 95 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}}" 

獎勵:您可以使用角度一次性結合(在前面加上「::」你的表情)落摘要週期值,這將有助於保持你的前端迅速。