我的angularJS应用程序显示对象的项目。如果单个项目具有某个ID,我想显示一条消息。目前它不起作用,出了什么问题?
HTML
<div data-ng-controller="myCtrl">
<ul >
<li data-ng-repeat="item in values">
Item with id:<code>#{{item.id}}</code>
<code ng-hide="special(item.id)"> -> This id is special</code>
</li>
</ul>
</div>
NG
var app = angular.module('m', []);
app.controller('myCtrl', function ($scope) {
$scope.values = [{
id: 1
}, {
id: 2
.....
}];
$scope.filter = [4,5,6];
$scope.filterIds = function (ids) {
return function (item) {
var filter = $scope.filter;
return filter.indexOf(item.id) !== -1;
}
}
$scope.special = function (id) {
return function (id) {
var filter = $scope.filter;
return filter.indexOf(id) !== -1;
}
}
});
答案 0 :(得分:1)
$scope.special()
在其自身内部返回一个函数,因此返回值是一个函数,而不是一个布尔值。替换为:
$scope.special = function (id) {
var filter = $scope.filter;
return filter.indexOf(id) !== -1;
}
你会发现它有效。
答案 1 :(得分:1)
请见http://jsfiddle.net/1rhvuyL1/
$scope.special = function (id) {
if ($scope.filter.indexOf(id) >=0)
{return true;}
}
<强> HTML:强>
<div>
<div data-ng-controller="myCtrl">
<ul>
<li data-ng-repeat="item in values">Item with id:<code>#{{item.id}}</code> <code ng-show="special(item.id)"> -> This id is special</code>
</li>
</ul>
</div>
</div>
答案 2 :(得分:-1)
您不需要在JS中创建特殊功能。
尝试:
<div data-ng-controller="myCtrl">
<ul >
<li data-ng-repeat="item in values">
Item with id:<code>#{{item.id}}</code>
<code ng-hide="item.id == '1'"> -> This id is special</code>
</li>
</ul>
</div>
当id = 1
时,上面会隐藏“此ID是特殊的”