我已经实施了离子标签来显示我最近查看的产品和搜索结果。我将最近的项目存储在localstorage中,我在我的html中绑定它。最初这个工作正常,但是这个名单经常消失。该列表在html中没有绑定。
我遇到过一些解决方案,比如 - $rootScope.apply()
,$timeout()
等等。我已经尝试了一切。现在失踪人数减少了。但有时候列表仍然会消失。除非重新安装应用程序,否则列表不会显示。
在我的控制器中,我这样做: -
$scope.$on( "$ionicView.loaded", function( scopes, states ) {
$scope.init();
});
$timeout(function() {
$rootScope.$apply(function()
{
$rootScope.viewedList = JSON.parse(window.localStorage.getItem("viewedList") || "[]");
});
}, 10);
以下代码在我的html中: -
<ion-tabs class="tabs-striped tabs-top tabs-background-grey tabs-positive">
<ion-tab title="Viewed items">
<ion-content class="has-header has-subheader has-tabs-top padding" style="padding:40px 0" overflow-scroll="true" has-bouncing="false">
<div ng-repeat="item in viewedList | reverse " >
<ion-list>
<ion-item class="item item-divider" ng-click="productSearch(item.productId)">
<span style="font-weight:bold"> {{item.Description}}</span><br>
{{item.productId}}
</ion-item>
</ion-list>
</div>
<div ng-if="viewedList.length===0 || viewedList==null">
<ion-item>No Viewed Items
</ion-item>
</div>
</ion-content>
</ion-tab>
<ion-tab title="Search Results">
<!-- Another tab here-->
</ion-tab>
</ion-tabs>
有人可以帮我解决这个问题???
答案 0 :(得分:1)
我通过使用&#39;跟踪&#39;
修复了此问题在html中我添加了这个: -
<div ng-repeat="item in list|reverse track by item.productid">
问题在于我们的应用程序列表不断变化,哈希值也会发生变化。不知何故,该名单失去了它的参考。使用&#39;跟踪&#39;解决了这个问题。