簡體   English   中英

ng-repeat過濾器,條件角為js

[英]ng-repeat filter with condition angular js

這是我的代碼:

 <option ng-repeat="name in names" value="{{names.name}">
    {{names.name | limitTo:10 }}
 </option>

我該如何添加條件:

if( names.name.length > 10) { 
     //add ... point after name displayed 
}

獲得結果<option value="Alexander Bradley">Alexander ... </option>

有任何想法嗎?

您可以創建自己的過濾器來執行此操作,並根據需要包含length參數。

.filter("ellipses", function () {
    return function (item) {
        if (item.length > 10) {
            return item.substring(0, 10) + " ..."
        }
        return item;
    };
});

<option ng-repeat="name in names" value="{{names.name}">
    {{names.name | ellipses }}
</option>

您也可以包含length參數,甚至可以使用limitTo本身:

.filter("ellipses", ["$filter", function ($filter) {
    return function  (item, limit) {
        if (item.length > limit) {
            return $filter("limitTo")(item, limit) + " ...";
        }
        return item;
    };
}]);

我認為這就是你要求的..如果超過10個字符,將名稱限制為10個字符,然后在其末尾添加“...”。 我就是這樣做的。 (還修復了一些語法錯誤)。

<option ng-repeat="name in names" value="{{name}}">
    {{name.length <= 10 ? name : name.substring(0, 10) + "..."}}
</option>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM