【问题标题】:Load JSON in AngularJS App (loading google spreadsheet)在 AngularJS 应用程序中加载 JSON(加载谷歌电子表格)
【发布时间】:2015-03-15 05:21:28
【问题描述】:

我正在尝试在我的应用程序中加载 Google 电子表格,但我无法使其正常工作。我尝试了不同的访问树结构的方法(通过控制器和/或通过 html),但它们都不起作用。 知道可能出了什么问题吗?

这是我的控制器:

app.controller('SuperCtrl', ['$scope', '$http', function($scope,$http) {
    $http.get("https://spreadsheets.google.com/feeds/list/1lZWwacSVxTD_ciOsuNsrzeMTNAl0Dj8SOrbaMqPKM7U/od6/public/values?alt=json-in-script&callback=x")
    .success(function(response) {
      $scope.items = response;
    });
}]);

这是 HTML:

<ul ng-controller="SuperCtrl">
  <li ng-repeat="item in items.feed.entry">
    {{ item.title.type }}
  </li>
</ul>

【问题讨论】:

  • 先旋转你的头像

标签: javascript json angularjs google-sheets


【解决方案1】:

为您创建了一个有效的 plunkr

http://plnkr.co/edit/JfXrVDWacvjF2RzxP18g?p=preview

但这也是解决方案的核心:

app.controller('SuperCtrl', ['$scope', '$http', function($scope,$http) {
    var url = 'https://spreadsheets.google.com/feeds/list/1lZWwacSVxTD_ciOsuNsrzeMTNAl0Dj8SOrbaMqPKM7U/od6/public/values?alt=json'
    var parse = function(entry) {
      var category = entry['gsx$category']['$t'];
      var description = entry['gsx$description']['$t'];
      var title = entry['gsx$title']['$t'];
      var url = entry['gsx$url']['$t'];
      var yo = entry['gsx$yo']['$t'];
      return {
        category: category,
        description: description,
        title: title,
        url: url,
        yo: yo
      };
    }
    $http.get(url)
    .success(function(response) {
      var entries = response['feed']['entry'];
      $scope.parsedEntries = [];
      for (key in entries) {
        var content = entries[key];
        $scope.parsedEntries.push(parse(content));
      }
    });
}]);

第一个问题,您使用的是 API 的“脚本中的 json”版本,这很复杂,不是您想要的。将 API 结果更改为 JSON。

第二个问题是解析结果,查看我的函数,它将令人困惑的谷歌电子表格条目转换为可读的 JSON。

该示例有效 - 有一个修补匠。我的建议是找到谷歌电子表格以外的东西来存储您的数据。

这很有趣,我实际上也在谷歌电子表格(trackerkeeper.co)之上构建了一个应用程序,这就是我可以帮助你的原因。对工程技术不是超级自豪,但它很有趣:

祝你好运。

【讨论】:

  • 太棒了。谢谢你。这就说得通了。是的,我只是使用谷歌电子表格作为临时解决方案。我从来没有做过,并认为尝试会很有趣(唉,我没弄明白:))。
  • plunkr 似乎不再起作用了。很想看到它再次工作:)
【解决方案2】:

这是一个新的工作 plunker。问题是它再也找不到“yo”变量了。

var parse = function(entry) {
  console.log(entry);
  var category = entry['gsx$category']['$t'];
  var description = entry['gsx$description']['$t'];
  var title = entry['gsx$title']['$t'];
  return {
    category: category,
    description: description,
    title: title,
    url: url
  };
}

http://plnkr.co/edit/YwskJRuORJBjw4S9wU7V?p=preview

【讨论】:

  • 我尝试用我的替换你的 g-sheet 链接并用我的替换条目。没有运气。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 2016-03-01
相关资源
最近更新 更多