使用AngularJS我想以切换方式显示和隐藏与特定id相关的数据。
我的JSON数据格式如下:
$scope.things = [{
id: 1,
data: 'One',
shown: true
}, {
id: 2,
data: 'Two',
shown: false
}, {
id: 3,
data: 'Three',
shown: true
}, ];
我想要的是点击id-1它会显示文字One和隐藏其他文字,点击id-2会显示文字2并隐藏其他文字等等。
以下是我尝试的小提琴:jsfiddle : Demo Link
答案 0 :(得分:1)
我更新了你的代码
$scope.flipMode = function (id) {
$scope.things.forEach(function (thing) {
if(id == thing.id){
thing.shown = true;
}
else{
thing.shown = false;
}
})
};
<a href="#" ng-click="flipMode(thing.id)">{{thing.id}}</a>
这是工作fiddle
答案 1 :(得分:0)
应该有效
$scope.flipMode = function (id) {
$scope.things.forEach(function (thing) {
if(thing.id === id) {
thing.shown = true;
return;
}
thing.shown = false;
})
};
<div ng-repeat="thing in things">
<a href="#" ng-click="flipMode(thing.id)">{{thing.id}}</a>
</div>
答案 2 :(得分:0)
分叉工作解决方案:http://jsfiddle.net/nypmmkrh/
更改范围功能:
$scope.flipMode = function (id) {
$scope.things.forEach(function(thing) {
if(thing.id == id) {
thing.shown = true;
} else {
thing.shown = false;
}
});
};
并在视图中传递id:
<a href="#" ng-click="flipMode(thing.id)">{{thing.id}}</a>