Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
Javascript 角度json数据显示在控制台中,但不显示在视图中_Javascript_Html_Json_Angularjs_Console - Fatal编程技术网

Javascript 角度json数据显示在控制台中,但不显示在视图中

Javascript 角度json数据显示在控制台中,但不显示在视图中,javascript,html,json,angularjs,console,Javascript,Html,Json,Angularjs,Console,我是Angular的新手,我真的不知道如何解决这个问题。我在网上查阅了文档,但没有找到正确的答案。我还向同事询问了这个问题。他们没办法帮我,所以我想最好问问你们解决这个问题的最佳方法是什么 基本上,应用程序应该在用户单击菜单中的链接时更改json数据。它应该获取当前索引,然后基于该索引在数组中显示相应的数据。我将发布到目前为止的代码 这里有一个链接,指向上的代码 为了使用HTTP请求,我建议使用以下模式: app.factory('quest', function($http, $q) {

我是Angular的新手,我真的不知道如何解决这个问题。我在网上查阅了文档,但没有找到正确的答案。我还向同事询问了这个问题。他们没办法帮我,所以我想最好问问你们解决这个问题的最佳方法是什么

基本上,应用程序应该在用户单击菜单中的链接时更改json数据。它应该获取当前索引,然后基于该索引在数组中显示相应的数据。我将发布到目前为止的代码

这里有一个链接,指向上的代码


为了使用HTTP请求,我建议使用以下模式:

app.factory('quest', function($http, $q) {
   var promise;
   return {
      getQuests: function() {
          // $http returns a promise, so we don't need to create one with $q
          promise = $http.get('data/study.json')
          .then(function(data) {
            return data;
          }, function(err) {
            return $q.reject(err);
          });
         return promise;
      }
   }
});
因此,稍后您可以使用以下工具在控制器中获取工厂:

quest.getQuests()
.then(function(data) {
    $scope.data = data;
}, function(res) {
    if(res.status === 500) {
        // server error, alert user somehow
    } else { 
        // probably deal with these errors differently
    }
});
您可以在此处找到模式:


还有一个在工厂下保存数据的好例子,因此您只需要一个HTTP请求就可以从web服务获取数据。

感谢大家的回答。我终于弄明白了。我所做的是创建一个函数来搜索数组,并传入当前术语。函数返回了与该项关联的数据

您的plunker中有许多错误,请修复。。。您可以试试这个而不是$routeProvider,我假设您使用单选按钮进行选择。单击单选按钮时,调用根据所选选项发出url请求的函数。我唯一能告诉您的是,有时控制台中的某个对象会在您在控制台中打开该对象后立即显示更新的数据,但是,当您需要代码中的数据时,它有时并不存在,请尝试使用$timeout函数并等待返回数据,稍后当您对angular稍有熟悉时,可以使用promises
quest.getQuests()
.then(function(data) {
    $scope.data = data;
}, function(res) {
    if(res.status === 500) {
        // server error, alert user somehow
    } else { 
        // probably deal with these errors differently
    }
});