【问题标题】:Fetch data from JSON and pass it as argument to function in AngularJS从 JSON 中获取数据并将其作为参数传递给 AngularJS 中的函数
【发布时间】:2014-05-10 19:20:56
【问题描述】:

我正在关注this example,在我的场景中,我想从 JSON 文件而不是本地数据中获取数据。 给定

    function store() {
       this.products = [
           new product("APL", "Apple", "Eat one every day to keep the doctor away!", 12, 90, 0, 2, 0, 1, 2),
           new product("AVC", "Avocado", "Guacamole anyone?", 16, 90, 0, 1, 1, 1, 2)
       ];
    }

    store.prototype.getProduct = function (sku) {
        for (var i = 0; i < this.products.length; i++) {
            if (this.products[i].sku == sku)
                return this.products[i];
        }

        return null;
    }

我有一个名为“Product.json”的简单文件,我想从那里提取我的所有数据并且不做任何更改。

【问题讨论】:

  • 您可能会在尝试“加载”文件时遇到问题。您要么只需将 json 数据(复制/粘贴)添加到角度代码文件中,要么需要公开某种服务以提供对数据的访问,然后通过 AJAX 获取它。看起来它应该是一件简单的事情,但存在安全问题,这使得这件事情变得不简单。
  • 您可能已经访问过该链接,所以请您指出一些链接或某些内容,因为我在这里失明了..或者可能是用于公开数据的服务示例!
  • 我认为从简单开始总是比构建更好。首先,只需复制 json 数据并将其粘贴到您的 Angular js 代码文件中,并将其分配给一个 var:var data = {...}。然后只需使用data var(或您选择的任何名称)。一旦你得到这个工作,然后担心使用服务来公开该数据,并且从那里可以很容易地使用该服务来调用通过 ajax 或其他方式获取数据。婴儿步。 :)
  • 我已经完成了,复制数据和所有内容。 JSON 中的数据要多得多,简单地以 Angular 代码复制所有这些内容将是一团糟,并且会扼杀它的灵魂,请在您尝试解释时给我写一个服务模块。 Angular 的东西对我来说真的很新,但我想了解更多并继续......谢谢你的耐心!
  • 您应该少担心“杀死(ing)灵魂”,而多关心了解它的工作原理。首先让它工作然后担心让它更好/更漂亮。我就如何处理这个问题给了你我的意见,你可以选择接受或不接受这些建议。我不会为你做这项工作,对不起......

标签: javascript json angularjs rest


【解决方案1】:

如果您已经拥有 products.json 文件,您可以使用 angular $http 服务来检索数据。像这样的:

$http.get('products.json').success(function(data){
   $scope.products = data;
});

编辑: 在您的情况下,您必须将从 get 请求中检索到的数据分配给您的 store.products 数组。

$http.get('Products.json').success(function(data) {
    store.products = data;
});

【讨论】:

  • 以这种方式获取数据能否满足此功能的要求?
  • store.prototype.getProduct = function (sku) { for (var i = 0; i
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2021-11-16
  • 2021-04-13
  • 2021-03-01
  • 2016-08-28
  • 2020-03-12
相关资源
最近更新 更多