Angularjs 有时不显示列表项
我对使用Meteor+angular+ionic构建的移动应用程序有一个奇怪的问题 在其中一个选项卡上,我订阅名为Angularjs 有时不显示列表项,angularjs,meteor,ionic,angular-meteor,Angularjs,Meteor,Ionic,Angular Meteor,我对使用Meteor+angular+ionic构建的移动应用程序有一个奇怪的问题 在其中一个选项卡上,我订阅名为Contacts的集合,并在ionic列表中显示联系人列表: <ion-list> <ion-item ng-repeat="contact in contacts" type="item-text-wrap"> <strong>{{contact.name}}</strong> </ion-ite
Contacts
的集合,并在ionic
列表中显示联系人列表:
<ion-list>
<ion-item ng-repeat="contact in contacts" type="item-text-wrap">
<strong>{{contact.name}}</strong>
</ion-item>
</ion-list>
以下是我在路由器
设置中的内容:
...
} ).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' );
}]
}
} )
问题是,当我打开我的应用程序时,几乎10次中有8次列表html元素被呈现,但是名称
和其他联系人详细信息都是空的,如所附图片所示。它只是一个列表项,但联系人本身未定义:
空项目的数量与联系人的数量匹配,但该列表中的每个联系人都为空,未定义。我尝试了所有可能的技巧使其正确渲染,但失败了。渲染的联系人数量为90,因此它根本不是一个大列表
如果我使用chrome usb inspector刷新我的应用程序页面,它将正确呈现。我缺少什么?试试这个:
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){
代码。。。
}
$scope.contacts将像这样返回集合
希望它能起作用。试试这个:
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){
代码。。。
}
$scope.contacts将像这样返回集合
希望它能工作。$scope.contacts
如果我从控制器中删除,它是未定义的。contacts:解析下应该是“contacts”:/I进行了编辑。另外,您的控制器应该是这样的:“myCtrl”,function($scope,contacts){…code}不幸的是,仍然未定义。感谢您的帮助。我认为解析
位应该移到选项卡联系人中:{
对象。将立即尝试此操作。啊,是的。它应该在控制器参数所在的同一范围内。我错过了此参数。它正在运行吗?$scope。如果我将其从控制器中删除,则联系人
未定义。联系人:解析下应为“联系人”:/我进行了编辑。此外,您的控制器应如下所示:“myCtrl”,函数($scope,contacts){…code}仍然未定义。很遗憾,感谢您的帮助。我认为解析
位应该移到'tab-contacts':{
对象中。现在将尝试此操作。啊,是的。它应该位于控制器参数所在的同一作用域中。我错过了这个。它现在工作了吗?