2016-07-19 6 views
0

ng-showでindexOfを使用して "Sam"という名前を画面に出力しようとしていますが、何も表示されません。どんな助けもありがとうございます。角度インデックスがテキストを出力しない

HTML

<head></head> 
    <body> 
     <div ng-controller="ArrayController"> 
     <div ng-repeat="product in products"> 
      <div ng-show="product.name.indexOf('Sam') == 2"> 
      </div> 
     </div> 
     </div> 


     <script src="bower_components/angular/angular.js"></script> 
     <script src="app.js"></script> 
    </body> 
</html> 

角度

var app = angular.module('myApp', []); 
app.controller('ArrayController', ['$scope', function($scope){ 
$scope.products = [ 
{ 
name: 'Joe' 

}, 
{ 
name: 'Bill' 
}, 
{ 
name: 'Sam' 
} 
]; 

}]); 
+2

を使用してはまた決して**テストがされる心に留めておくん**は2に等しい。 – developer033

+1

申し訳ありませんが、Array.indexOfが何をするかを知ることをお勧めします。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf –

+2

@SamTriki 、Even Stringには 'indexOf()'がありますhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf – Satpal

答えて

1

解決策ng-ifの代わりng-show

<body ng-app="myApp"> 
     <div ng-controller="ArrayController"> 
     <div ng-repeat="product in products"> 
      <div ng-if="product.name.indexOf('Sam') > -1">{{product.name}} 
      </div> 
     </div> 
     </div> 
</body> 

var app = angular.module('myApp', []); 
app.controller('ArrayController', ['$scope', function($scope){ 
    $scope.products = [ 
    { 
     name: 'Joe' 
    }, 
    { 
     name: 'Bill' 
    }, 
    { 
     name: 'Sam' 
    } 
    ]; 
}]); 
0
<div ng-show="product.name.indexOf('Sam') == 2"></div> 

product.nameは、その3番目の文字(すなわち "xxSam" から始まる文字列 "サム" が含まれている場合、これはdiv要素が表示されます)。それはおそらくあなたが望むものではありません。

divは空ですので、ng-showが真実であってもdivは表示されません。それは、あまりにも、あなたが望むものはおそらくではありません。

私はあなたがこのされたい何をかなり確信している:

<div>{{product.name}}</div> 
関連する問題