AngularJS Scope不会调用元素

时间:2014-10-31 01:32:13

标签: arrays angularjs scope angularjs-scope angularjs-ng-repeat

大家好,这个练习的范围不会运行,

查看:

<body ng-controller="marcasController">
  <ul>
    <li ng-repeat="todo in marcas">
      {{todo.nombre}}
      <ul>
        <li ng-repeat="tipo in todo.modelo">{{tipo.nombre}}</li>
      </ul>
    </li>
  </ul>
</body>

控制器:

app.controller('marcasController', ['$scope', function($scope) {
    $scope.marcas = 
  [{
  "marcas": [
    {
      "marca": "Chevrolet",
      "modelo": [
        {
          "nombre": "Aveo",
          "image": "images/aveo.jpg",
          "modelo": "2000-2014",
          "tab": "aveo"
        },
        {
        "nombre": "Captiva",
        "image": "images/captiva.jpg",
        "modelo": "2000-2014",
        "tab": "captiva"
        }
      ]
    }
  ]
}];
  }])

Example

请如何使用范围来调用对象

1 个答案:

答案 0 :(得分:1)

鉴于数据结构你应该这样做:

  <ul>
    <li ng-repeat="todo in marcas[0].marcas">
      {{todo.marca}}
      <ul>
        <li ng-repeat="tipo in todo.modelo">{{tipo.nombre}}</li>
      </ul>
    </li>
  </ul>

Example

请注意$scope.marcas是只包含一个元素的Array个对象,该元素只有一个属性:marcas这是另一个数组......

也许您希望数据结构改为:

  $scope.marcas =[
    {
      "marca": "Chevrolet",
      "modelo": [
        {
          "nombre": "Aveo",
          "image": "images/aveo.jpg",
          "modelo": "2000-2014",
          "tab": "aveo"
        },
        {
        "nombre": "Captiva",
        "image": "images/captiva.jpg",
        "modelo": "2000-2014",
        "tab": "captiva"
        }
      ]
    }
  ];

在这种情况下,您的视图的正确语法是:

  <ul>
    <li ng-repeat="todo in marcas">
      {{todo.marca}}
      <ul>
        <li ng-repeat="tipo in todo.modelo">{{tipo.nombre}}</li>
      </ul>
    </li>
  </ul>

Example