0

我与角玩的js工作角的js过滤器不使用JavaScript加法运算

<li ng-repeat="x in capitals | orderBy:'capital'"> 
{{ x.country|uppercase}} : {{ x.capital|uppercase}} 
</li> 

的作品,但

<li ng-repeat="x in capitals | orderBy:'capital'"> 
{{ x.country|uppercase+ ":" + x.capital|uppercase}} 
</li> 

dose't工作

是有什么解决办法吗?

回答

0

这不会工作,因为你不能在表达式中使用加法运算符。您可以编写自定义过滤器并使用它。检查下面的小提琴。

jsfiddle.net/7nzot7jh/ 
+0

尝试过

  • {{showMovie(x.country)+”:“+ x.capital}}

0

找到了答案 这是我的自定义过滤器

 app.filter('alterCap',function() 
     { 
      return function(x) 
      { 
       var i, c, txt = ""; 
       for (i = 0; i < x.length; i++) { 
        c = x[i]; 
        if (i % 2 == 0) { 
         c = c.toUpperCase(); 
        } 
        txt += c; 
       } 
       return txt; 
      }; 
     }); 

在我控制我已经通过了

app.controller("myCtrl",function($scope,$filter){ 
       $scope.capitals = [ 
       {country:'India',capital:'Delhi'}, 
       {country:'Sri Lanka',capital:'Colombo'}, 
       {country:'Afganistan',capital:'Kabul'}, 
       {country:'Bhutan',capital:'Norway'}, 
       {country:'Nepal',capital:'Thimphu'}, 
       {country:'Japan',capital:'Tokyo'}, 
       {country:'China',capital:'Beijing'}, 
       {country:'Russia',capital:'Moscow'}, 
       {country:'USA',capital:'Washington, D.C.'} 
       ]; 
       $scope.applyAlterCap = function(movie){ 
        return $filter('alterCap')(movie); 
       }; 
      }); 

现在我可以使用过滤器在我的表达

 <p>Using Custom Filter with addition operator inside expression</p> 
     <ul> 
      <li ng-repeat="x in capitals | orderBy:'capital'"> 
       {{ applyAlterCap(x.country) + ":" + x.capital }} 
      </li> 
     </ul> 
0
{{ x.country + ":" + x.capital}}