数组中的JavaScript数组

时间:2015-06-30 17:23:25

标签: javascript angularjs

我想在“locationsList”上放置一个数组。以下示例输出

All

括号和一切。

我错过了什么?

"['Location 1', 'Location 2', 'Location 3']" 

这就是我的HTML:

代码:

App.controller('locationAccordionCtrl', function ($scope) {

  $scope.locations = [
    {
      "siteName":"First Site",
      "siteID":"First ID",
      "locationCount":"200 Locations",
      "locationsList":['Location 1', 'Location 2', 'Location 3'],
      "open":false
    }
  ];

});

视觉:

<div ng-controller="locationAccordionCtrl">
    {{location.locationsList}}
</div>

我想要的是列出所有位置(带换行符)。 EG:

200 Locations 
['Location 1', 'Location 2', 'Location 3']

3 个答案:

答案 0 :(得分:1)

假设您的HTML看起来像这样:

<html>
  ...
  <div ng-controller="locationAccordionController">
  </div>
  ...
</html>

要获得您正在寻找的输出,您需要使用ng-repeat迭代数组并为每个数组构建一个DOM元素(例如<li>):

<html>
  ...
  <div ng-controller="locationAccordionController">
    <div ng-repeat="location in locations">
      <p>{{location.locationCount}}</p>
      <ul>
        <li ng-repeat="innerLocation in location.locationsList track by $index">
          {{innerLocation}}
        </li>
      </ul>
    </div>
  </div>
  ...
</html>

更新:请注意track by $index;这是因为Angular需要一种方法将这些创建的DOM元素链接到$scope中的模型,如果你的数组中有重复的字符串,Angular(或一般的JavaScript)就无法区分它们。因此,我们使用数组中的位置($index)作为每个元素的唯一标识符,以防重复。

您可以设置列表项的样式,使它们没有项目符号(例如,如果您使用的是Bootstrap,则为list-unstyled),或者您可以将它们设为<p>而不是列表。

答案 1 :(得分:0)

我觉得你想画画

var timeRange2 = CMTimeRangeMake(kCMTimeZero, duration2)

locationsList是一个数组,然后单独绘制,你需要使用 ng-repeat

{{locations.locationsList}}

供参考 - https://docs.angularjs.org/api/ng/directive/ngRepeat

答案 2 :(得分:-2)

实际上你的嵌套数组是正确的。

使用chrome F-12进入控制台并复制+粘贴,你会看到你做得正确:

我的例子: foob​​ar = {something:&#34; else&#34;,&#34; foobar&#34; :&#34;是&#34;,&#34; delta&#34; :[&#34;你好&#34;,&#34;世界&#34;]}

也许你的问题在于jquery中的回调