ionic 有时不显示列表项

问题描述 投票:0回答:2

我在使用 Meteor + Angular + ionic 构建的移动应用程序时遇到了一个奇怪的问题。

在其中一个选项卡上,我订阅了名为

Contacts
的集合,并在
ionic
列表中显示联系人列表:

<ion-list>
    <ion-item ng-repeat="contact in contacts" type="item-text-wrap">
        <strong>{{contact.name}}</strong>
    </ion-item>
</ion-list>

以下是此选项卡控制器中的内容:

$scope.contacts = $meteor.collection( Contacts );

这是我在

router
设置中的内容:

...
} ).state( 'tab.contacts', {
    url    : '/contacts',
    views  : {
        'tab-contacts': {
            templateUrl: 'templates/contacts/list.ng.html',
            controller : 'ContactsCtrl'
        }
    },
    resolve: {
        contacts: ['$meteor', function ( $meteor ) {
            return $meteor.subscribe( 'contacts' );
        }]
    }
} )

问题是,当我打开应用程序时,几乎十分之八的情况下,列表 html 元素都会呈现,但

name
和所有其他联系方式都是空的,如所附图片所示。它只是一个列表项,但联系人本身未定义:

空项目的数量与联系人的数量匹配,但该列表中的每个联系人都是空的,未定义的。我尝试了所有可能的技巧来使其正确渲染,但失败了。正在渲染的联系人数量为 90,所以这根本不是一个大列表。

如果我使用 Chrome USB 检查器刷新应用程序的页面,它会正确呈现。我错过了什么?

angularjs meteor ionic-framework angular-meteor
2个回答
0
投票

试试这个:

resolve: {
    "contacts": ['$meteor', function ( $meteor ) {
        $meteor.subscribe( 'contacts' ).then(function(subscriptionHandle){
            return $meteor.collection( Contacts );
        })
    }]
}

现在控制器中不需要这个

$scope.contacts = $meteor.collection( Contacts );
控制器需要如下所示:
app.controller( "myCtrl", function( $scope, contacts ) { 
   code...
    }

$scope.contacts 将像这样返回集合。

希望它有效。


0
投票

我遇到了类似的问题,但在我的情况下,前 3-4 条记录正确显示,但其余的显示为堆叠条形图和条形图为空。我设置了另一个显示记录详细信息的页面,该页面在从列表中选择项目后显示。单击空栏后,详细信息将正确显示。 基础:windows 10 上的 ionic Angular ver 7 和 cordova 在命令提示符下创建的 apk

© www.soinside.com 2019 - 2024. All rights reserved.