gpt4 book ai didi

ajax - 带有 Angular : loading tab content on click only with $http 的选项卡

转载 作者:行者123 更新时间:2023-12-04 01:38:07 26 4
gpt4 key购买 nike

我有包含大量数据的大表格,
所以我想要每个标签都有大量数据的标签。

我希望在单击选项卡标题时延迟加载选项卡内容,然后在以后再次选择时不需要再次重新加载。

我认为这个例子符合我想要的方向:
angular-ui tabs loading template in tab-content

但这似乎加载了一个静态模板:

<tabs>
<pane active="pane.active"
heading="{{pane.title}}"
ng-repeat="pane in panes">
<div ng-include="pane.content"></div>
</pane>
</tabs>

如何使用 $http.get() 动态加载 Pane 的内容?
注意:这已经是通过 ng-view 路由加载的页面,所以我不能做嵌套路由。

编辑:每个标签的内容都大不相同,所以理想情况下,我会为每个标签或类似的东西提供一个功能和模板......

我猜 angular-ui 是解决这个问题的好方法?

最佳答案

我自己很好奇如何通过 ajax 加载标签。这是我制定的一个小演示。

标签有一个 select选择时触发的属性。所以我使用以下标签:

<tab heading="{{tabs[0].title}}" select="getContent(0)">
<div ng-hide="!tabs[0].isLoaded">
<h1>Content 1</h1>
<div ng-repeat="item in tabs[0].content">
{{item}}
</div>
</div>
<div ng-hide="tabs[0].isLoaded"><h3>Loading...</h3></div>
</tab>

Controller :
 $scope.tabs = [
{ title:"AJAX Tab 1", content:[] , isLoaded:false , active:true},
{ title:"Another AJAX tab", content:[] , isLoaded:false }
];


$scope.getContent=function(tabIndex){

/* see if we have data already */
if($scope.tabs[tabIndex].isLoaded){
return
}
/* or make request for data , delayed to show Loading... vs cache */
$timeout(function(){
var jsonFile='data'+(tabIndex +1)+'.json'
$http.get(jsonFile).then(function(res){
$scope.tabs[tabIndex].content=res.data;
$scope.tabs[tabIndex].isLoaded=true;
});

}, 2000)

}

将缓存移动到服务,因此如果用户切换 View 并返回,数据仍将在服务缓存中

DEMO

关于ajax - 带有 Angular : loading tab content on click only with $http 的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781004/

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