从angularjs

时间:2016-05-25 19:18:01

标签: javascript arrays angularjs json

这是我第一次在这里堆叠,我希望有人可以帮助我,因为我被卡住了!

我在AngularJS中创建了一个脚本,它创建了从简单数组中提取数据的多个图标。每个图标都与YouTube视频相关联。

数组和函数很简单:

app.controller('videolist', function ($scope, $http) {
$scope.videos = ['q_664lrmyGE','q_664lrmyGE','dWuEVSCw8B8','3Wm3G8s8bxk','_ppuCZR8Mkw','9gN_cmK9TUc','s7lVGhTPQAY','_rNmmHXEdTc','blr-qDffIq0','_70M4lkLKPk','wjB9JtTU7SU','BGh1xc-O0WA','uxEBK9q686c','ToO-tS-X2U4','AKrmrbCTNxc'];

$scope.icon = [];
  // add youtube videos
  for (i=0; i<$scope.videos.length; i++) {
    $scope.icon.push({id: $scope.videos[i], thumb: 'mqdefault'});

  }
});

现在我想从外部JSON文件加载数组。

我以任何可能的方式尝试过,但没有工作。 我怎么能这样做?那JSON文件应该如何组成? 在每个例子中,我都看到至少有两个或三个值可以创建一个记录,或者一对使用&#34;标签&#34;:&#34;值&#34;。

非常感谢!!

2 个答案:

答案 0 :(得分:0)

单独一个数组是无效的JSON所以你必须将数组嵌入到父JSON对象中,如下所示:

var videos = {'videoArray':['q_664lrmyGE','q_664lrmyGE','dWuEVSCw8B8',...]}

然后你通过引用videos.videoArray

来访问数组

答案 1 :(得分:0)

JSon格式

分散是正确的json格式($scope.videos = {'keyToArray':['foo','bar','baz',]})的组成。另外,虽然我也有点新,但我认为分散使用var而不是$scope.是有意义的,因为如果你只是创建一个变量然后你不需要它在范围内稍后在你的功能中碾压它。

从文件

加载数据

根据您未使用的$http服务判断,我想您可能会询问如何从您存储的.json文件中获取数据?为此,请执行以下操作:

$http.get("video.json").then(function (response) {
    $scope.videos = response.data;
});

希望这有帮助!