我试图输出名称" Sam"在使用indexOf的ng-show屏幕上,但没有出现任何内容。任何帮助表示赞赏。
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'
}
];
}]);
答案 0 :(得分: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'
}
];
}]);
答案 1 :(得分:0)
<div ng-show="product.name.indexOf('Sam') == 2"></div>
如果product.name
包含字符串&#34; Sam&#34;这将显示div。从第三个字符开始(即&#34; xxSam&#34;)。那可能不是你想要的。
div为空,即使ng-show
真实,也不会对用户可见。那也可能不是你想要的。
我非常确定你做想要的是:
<div>{{product.name}}</div>