gpt4 book ai didi

带有 ng-repeat 的 AngularJS 选项卡

转载 作者:行者123 更新时间:2023-12-01 08:54:36 26 4
gpt4 key购买 nike

我问了这个问题 before并且想知道也许有人遇到过类似的问题并且可能知道如何处理它?我的 plnkr !

Angular 选项卡不适用于 ng-repeat。似乎 Angular 无法将来自单击的选项卡值和来自 ng-show 的选项卡值放在一起。我的代码:

<section ng-app="myApp">
<div ng-controller="myCtrl">
<ul ng-init="tab=1">
<li ng-repeat="item in data">
<a href ng-click="tab = item.thingy">{{item.name}}</a>
</li>
</ul>
<div ng-repeat="item in data" ng-show="tab === item.thingy">
<img ng-src="{{item.img}}" width="50px"><br>
{{item.year}}</div>
</div>
</section>
var app = angular.module('myApp', []);

app.controller('myCtrl', ['$scope', function($scope) {
$scope.data = [{
name: "First",
title: "oneTitle",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
year: "2013",
img: "http://static.hdw.eweb4.com/media/wp_400/1/5/42735.jpg",
thingy: 1
}, {
name: "third",
title: "twoTitle",
description: "Quisque pulvinar libero sed eros ornare",
year: "2014",
img: "http://static.hdw.eweb4.com/media/wp_400/1/1/8519.jpg",
thingy: 2
}, {
name: "Second",
title: "threeTitle",
description: "Cras accumsan massa vitae tortor vehicula .",
year: "2015",
img: "http://static.hdw.eweb4.com/media/wp_400/1/5/43326.jpg",
thingy: 3
}, {
name: "fourth",
title: "FourTitle",
description: "Suspendisse vitae mattis magna.",
year: "2011",
img: "http://static.hdw.eweb4.com/media/wp_400/1/5/42413.jpg",
thingy: 4
}];
}]);

最佳答案

有多种方法可以解决这个问题(一种是 dcodesmith 的最佳答案)。

使用 Controller As语法

如果您希望在 View 上定义仅供查看的变量(就像您在示例中所做的那样),使用 Controller As语法

使用此方法的优点之一是可以直接访问在 Controller 范围内定义和修改变量。而在您的情况下, tab 变量已在 ng-repeat/ng-init

的子范围内进行了修改

html

<div ng-controller="myCtrl as vm">

<ul ng-init="vm.tab=1">
<li ng-repeat="item in vm.data">
<a href ng-click="vm.tab = item.thingy">{{item.name}}</a>
</li>
</ul>

<div ng-repeat="item in vm.data" ng-show="vm.tab === item.thingy">
<img ng-src="{{item.img}}" width="50px"><br>
{{item.year}}</div>
</div>

js

app.controller('myCtrl', ['$scope',
function($scope) {
var vm = this;

vm.data = [{
name: "First",
title: "oneTitle",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
year: "2013",
img: "http://static.hdw.eweb4.com/media/wp_400/1/5/42735.jpg",
thingy: 1
},
//...
];

}
]);

http://plnkr.co/edit/1q0AVrcqhIZRjFvVSVIP?p=preview

enter image description here

关于带有 ng-repeat 的 AngularJS 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com