0
我需要扩展此工作示例以包含多个面板,每个面板都显示各自的数据集。将角度数据绑定到多个自举面板
我目前有两个独立的控制器,并将每个面板绑定到每个控制器,每个控制器都包含它们自己的单独数据集。但是,面板的数量需要是动态的,并基于数据馈送的内容进行构建。
显然,我并不是真的想要建立一个单独的控制器。创建单个数据模型然后将过滤结果集绑定到每个面板是更有意义的,例如, flittered和约束基础上,panel_id:
$scope.items = [
{
title: 'Header - 1',
content: 'Panel 2-Dynamic Group Body - 1',
panel_id: '1'
},
{
title: ' Header - 2',
content: 'Panel 2-Dynamic Group Body - 2',
panel_id: '2'
},
{
title: ' Header - 3',
content: 'Panel 2-Dynamic Group Body - 3',
panel_id: '3'
}
];
HTML代码:
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.1.js"></script>
<script src="app.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<link href="style.css" rel="stylesheet"/>
</head>
<body>
<!-- Panel 1 -->
<div ng-controller="showhideCtrl_1">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Panel 1 heading</div>
<button class="btn btn-default " ng-show="hidevar" ng-click="hidevar=false">Back</button>
<!-- List group -->
<ul class="list-group" ng-hide="hidevar">
<li class="list-group-item" ng-repeat="item in items" ng-click="showdes(item)"><a>{{item.title}}</a></li>
</ul>
<div class="panel-body" ng-show="hidevar">
{{itemdesc.content}}
</div>
</div>
</div>
<!-- Panel 2 -->
<div ng-controller="showhideCtrl_2">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Panel 2 heading</div>
<button class="btn btn-default " ng-show="hidevar" ng-click="hidevar=false">Back</button>
<!-- List group -->
<ul class="list-group" ng-hide="hidevar">
<li class="list-group-item" ng-repeat="item in items" ng-click="showdes(item)"><a>{{item.title}}</a></li>
</ul>
<div class="panel-body" ng-show="hidevar">
{{itemdesc.content}}
</div>
</div>
</div>
</body>
</html>
这里的javascript代码
angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('showhideCtrl_1', function ($scope) {
$scope.items = [
{
title: 'Header - 1',
content: 'Panel 1-Dynamic Group Body - 1'
},
{
title: ' Header - 2',
content: 'Panel 1-Dynamic Group Body - 2'
},
{
title: ' Header - 3',
content: 'Panel 1-Dynamic Group Body - 3'
}
];
$scope.showdes = function(item){
$scope.itemdesc=item;
$scope.hidevar=true;
}
});
angular.module('ui.bootstrap.demo').controller('showhideCtrl_2', function ($scope) {
$scope.items = [
{
title: 'Header - 1',
content: 'Panel 2-Dynamic Group Body - 1'
},
{
title: ' Header - 2',
content: 'Panel 2-Dynamic Group Body - 2'
},
{
title: ' Header - 3',
content: 'Panel 2-Dynamic Group Body - 3'
}
];
$scope.showdes = function(item){
$scope.itemdesc=item;
$scope.hidevar=true;
}
});
这里是我到目前为止工作的例子:
http://plnkr.co/edit/l65Q3MiofrNn5DyCgCfM?p=preview
非常完美,非常感谢您的支持。奇迹般有效。 – user1513388 2015-04-02 08:54:24
嗨我需要更新我的数据模型,以便它包含我的面板标题的名称,因为这些数据将被动态生成。我在这里创建了一个新的Plunker,它显示:http://plnkr.co/edit/XbX0hF8gFzolTdKF3qxp?p=preview。但是,我现在还无法弄清楚如何将它绑定到面板上。 – user1513388 2015-04-02 17:31:23
您只需要将ng重复更改为在itemsList.store中列出。检查此http://plnkr.co/edit/jPMzuEPe3rHHwJmowWZM?p=preview – eladcon 2015-04-02 17:38:42