Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Can';在ng repeat中无法从列表中获取对象_Angularjs - Fatal编程技术网

Angularjs Can';在ng repeat中无法从列表中获取对象

Angularjs Can';在ng repeat中无法从列表中获取对象,angularjs,Angularjs,我试图显示列表中的所有用户,但这似乎对我不起作用 目前,我有以下几点: <div ng-init="messageCtrl.getPatients()"> <tr ng-repeat="patient in messageCtrl.patientList"> <td>{{patient.username}}</td>

我试图显示列表中的所有用户,但这似乎对我不起作用

目前,我有以下几点:

<div ng-init="messageCtrl.getPatients()">
                        <tr ng-repeat="patient in messageCtrl.patientList">
                            <td>{{patient.username}}</td>
                            <td>{{patient.role}}</td>
                            {{messageCtrl.patientList[0].username}}
                        </tr>
                    </div>
我认为问题出在视图中,因为当我执行{messageCtrl.patientList[0].username}时,用户名会显示出来,但当我尝试在ng repeat中执行时,它不会显示出来,而且我确信数据在patientList中

提前感谢。

在Ctrl中设置范围 在你的控制器里你应该有

$scope.theArrayYouWantToRepeat = //whatevers in the array
然后在html中删除这一行

<div ng-init="messageCtrl.getPatients()">

您的控制器应该在html中用use ng controller声明

范围 将变量或函数绑定到作用域时,将其设置为双向数据绑定。您应该使用$scope在视图中设置所需的任何内容

控制器应该在数据显示在视图中之前将业务逻辑添加到数据中

数据流 对于angular应用程序中的数据流,它可能看起来有点像这样

  • 数据库(可能是mongodb或firebase)
  • API(检索用户列表等)
  • 对api进行$http调用的工厂或服务
  • 调用工厂并绑定到$scope的控制器
  • 视图,其中您使用过滤器或循环等显示$scope中的数据
  • 结论
    我希望这能清楚地说明这个过程。

    可能重复的是
    用户工厂。getPatientList
    使用标准承诺,或者angular的$q承诺?@hege_hegedus是的,我使用它!我是说哪一个$q和标准承诺的工作方式不同。谢谢你,我几乎成功了。当我打印{{list}时,我得到了用户的详细信息,但当我把它放在ng repeat中时却没有,这让我很困惑。。这是我在打印{{list}:[{{u id:“569262b056231a7f93c290cb”,“用户名”:“patient1”,“密码”:“$2a$08$JEGVJYNWUGGF4QOKSCJM.QO8DVYIPLPPWSJNEXAACZDETUA4IGA”,“角色”:“患者”,“治疗列表”:[],“医生列表”:[“5692622e56231a7f93c290ca],“用户列表”:]如果不能写出它们,则不能是数组
    <div ng-init="messageCtrl.getPatients()">