2012-11-26 44 views
2

我試圖做角是這樣的:如何將條件添加到表達式中AngularJS

你搜索發現{{searchResults.iTotalRecords> 0,0}}的結果。

當然,這不起作用,但你明白了。如果我的對象是一個整數,我該如何檢查該值是否大於零,否則將其設置爲0?

謝謝。

回答

5

如果您只想更改數據的表示而不更改應用程序中的底層(實際)數據,則自定義角度過濾器非常適合此目的。

下面是您的用例的一個示例過濾器。你可以把任何其他的邏輯放在你的過濾器中。

HTML:

<p>Your search found {{searchResults.iTotalRecords | resultCountFilter}} results.</p> 

的Javascript:

angular.module('app', []).filter('resultCountFilter', function() { 
    return function (resultCount) { 
     return resultCount > 0 ? resultCount : 0;   
    }; 
});​ 

這裏有一個的jsfiddle:Understanding Angular Filters

+0

感謝Aleross,但我試圖避免爲此編寫一個控制器,因爲我認爲它應該由表示層處理。 –

+0

結束了使用過濾器,像一個魅力,感謝Aleross! –

+0

沒問題!很高興它解決了 –

4

要做到這一點,你可以只用你的$範圍功能:

app.controller('MainCtrl', function($scope) { 
    $scope.foo = function() { 
     return $scope.searchResults.iTotalRecords > 0 ? $scope.searchResults.iTotalRecords : 0; 
    }; 
}); 

而且在你的標記:

<span>{{foo()}}</span> 

編輯:100%的標記方法...

<span ng-show="searchResults.iTotalRecords > 0">{{searchResults.iTotalRecords}}</span> 
<span ng-show="searchResults.iTotalRecords <= 0">0</span> 

您可能還想檢查ngSwitchngHide以查看更高級的情況。

+0

:在過濾器http://jsfiddle.net/alexross/ZN87E/

AngularJS文檔謝謝Blesh,但如果可能的話,我試圖在標記中做到這一點。有沒有辦法做到這一點? –

+0

正如你所願...看到更新的答案 –

+0

真棒,謝謝Blesh! –

相關問題