Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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中有多个项,则ng init不起作用,但对单个项起作用_Angularjs - Fatal编程技术网

如果angularjs中有多个项,则ng init不起作用,但对单个项起作用

如果angularjs中有多个项,则ng init不起作用,但对单个项起作用,angularjs,Angularjs,我是stackoverflow的新手,如果这个问题不合适,很抱歉 我在ng repeat(会话)中的ng init中声明了一个函数 通过传递会话id获取问题长度 //这是HTML部分 {{session.name} {{session.speakers.length} {{问题.长度} //这是有角度的部分 $scope.getQuestionsofSession=函数(sessionid){ $http.get('/api/audiencepanel/getquestions/'+sessio

我是stackoverflow的新手,如果这个问题不合适,很抱歉

我在ng repeat(会话)中的ng init中声明了一个函数 通过传递会话id获取问题长度

//这是HTML部分
{{session.name}
{{session.speakers.length}
{{问题.长度}

//这是有角度的部分 $scope.getQuestionsofSession=函数(sessionid){ $http.get('/api/audiencepanel/getquestions/'+sessionid) .success(函数(数据){ $scope.questions=数据; }); }; //获取会话列表 $scope.getsessions=function(){ $http.get(“api/getsession/”+$stateParams.id).success(函数(数据){ $scope.sessionslist=数据; });
因此,如果会话长度是单一的,那么nginit可以工作,但是会话 长度倍数不显示任何数据。$scope.questions不显示 显示任何数据

顺便说一下,会话表和问题表是不同的 不同的是,问题是基于会话id存储的。因此需要基于会话id的会话数据中的问题数据

有没有其他方法可以让它工作


在每个ng重复中,我们有不同的范围。因此
sessionlist[0]
中的
question
对象与
sessionlist[1]

您可以这样做,而不是使用init

$scope.getsessions= function(){
   $http.get("api/getsession/"+$stateParams.id).success(function(data){
   angular.forEach(data, function(value, key){
      $http.get('/api/audiencepanel/getquestions/'+value.id)
            .success(function(data1){                
                value.questions= data1;
            });
   });
   $scope.sessionslist = data;
});

在每个ng重复中,我们有不同的范围。因此
sessionlist[0]
中的
question
对象与
sessionlist[1]

您可以这样做,而不是使用init

$scope.getsessions= function(){
   $http.get("api/getsession/"+$stateParams.id).success(function(data){
   angular.forEach(data, function(value, key){
      $http.get('/api/audiencepanel/getquestions/'+value.id)
            .success(function(data1){                
                value.questions= data1;
            });
   });
   $scope.sessionslist = data;
});

不要使用ng init。正如文档所述,它几乎永远不会被使用。直接从控制器初始化视图所需的数据。顺便说一句,使用一个$scope.questions字段(包含一个会话的问题)没有多大意义,因为您要显示多个会话。不要在会话列表中使用ng init循环d fetch questions为ng repeat中的每个元素发出API调用不是一个好的做法。您实际在寻找什么?@simon通过添加会话列表代码修改了问题。您可以添加一些代码来获取问题吗?当您将会话创建为请求时,您可以在单个请求本身中获得此消息。您有这些吗响应数据1.session.id 2.session.name 3.speakers.length 4.questions.length包含在一个响应中。这将增加可伸缩性。不要使用ng init。正如文档所述,它几乎不应该被使用。直接从控制器初始化视图所需的数据。顺便说一句,使用单个$scope.questions字段没有多大意义,请继续获取一个会话的问题,因为您正在显示多个会话。不是使用ng init循环通过sessionlist和获取问题,而是为ng repeat中的每个元素发出API调用不是一个好的做法。您实际上在寻找什么?@simon通过添加会话列表代码修改了问题。您可以添加一些获取问题的代码?当您将会话创建为请求时,您可以在单个请求本身中获取这些问题。将这些响应数据1.session.id 2.session.name 3.speakers.length 4.questions.length包含在一个响应中。这也将提高可伸缩性