【问题标题】:AngularJS $http.get not pulling backAngularJS $http.get 不退缩
【发布时间】:2017-08-01 01:50:02
【问题描述】:

为什么这没有拉回任何东西?我不断收到错误消息,我不知道为什么。我尝试在响应数据上使用 JSONParse 并将其重新分配给 $scope 但这没有帮助。我的 F12 控制台中没有错误。我知道 JQuery 是一个更好的解决方案,但我更喜欢 Javascript,不过我会两者兼而有之。提前谢谢。

var controlSeletor = angular.module('moduleName', []);
controlSeletor .controller('variableController', function($scope, $http) {
  $http.get("data.json")
  .then(
    function(response) {
    // Success
    $scope.variable = response.data;
   },
    function(response){
    // Error
    alert("Error!");
    }
);
});

json 是一个单独的文件,如下所示:

[{
  "url": "place.html",
  "name": "Bob",
  "pic": "bob.jpg"

},
{
  "url": "place.html",
  "name": "Mike",
  "pic": "mike.jpg"

},
{
  "url": "place.html",
  "name": "Tony",
  "pic": "tony.jpg"
}];

【问题讨论】:

  • 调试 101 提示:查看您的代码在哪里执行此操作 function(response){ // Error alert("Error!"); } ... 为什么不 console.error(response); - 然后您可以看到错误是什么!!
  • The json is a separate file and looks like this - 实际上不是valid JSON,因为密钥没有包含在"..."
  • 感谢您提醒我有关 console.error(response);

标签: javascript angularjs json


【解决方案1】:

你的JSON无效,改成如下,

[{ "url": "place.html", “名称”:“鲍勃”, “图片”:“鲍勃.jpg”},{ "url": "place.html", “名称”:“迈克”, “图片”:“麦克.jpg”},{ "url": "place.html", “名称”:“托尼”, “图片”:“tony.jpg”}]

var app = angular.module('filterApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http.get('data.json').
  then(function(response) {
    $scope.variable = response.data;
  });
});

DEMO

【讨论】:

    【解决方案2】:

    观察很少:

    • 控制器声明不正确。应该是 controlSeletor.controller 而不是 controlSeletor .controller
    • 您的JSON 不是valid JSON

    有效的JSON 应该是这样的:

    【讨论】:

    • 我在发布问题时不小心放入的空间。感谢 JSON 的建议。现在一切都好
    • @JMizzle 如果此答案可以帮助您将其标记为正确,以便对其他人也有帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2019-12-02
    • 2016-03-29
    相关资源
    最近更新 更多