【问题标题】:Data binding in ng-repeat in Angular JSAngular JS 中 ng-repeat 中的数据绑定
【发布时间】:2016-11-21 20:32:52
【问题描述】:

我是 Angular JS 初学者,这可能是一个非常愚蠢的问题,但我发现这个问题很困难。我有以下用 Angular js 编写的代码来显示带有类别的产品列表。

  <html>
     <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js">      </script>
        <script>
           var myApp = angular.module("myApp",[]);
           myApp.controller('myController',function($scope){
           $scope.welcome = "WELCOME TO STORE"
           $scope.products = 
           {
             "ProductDetails": [
               {
                 "category": "Favorites",
                 "data": [
                   {
                     "price": "10",
                     "description": "Favorites product1 demo description",
                     "name": "Demo product1"
                   },
                   {
                     "price": "13",
                     "description": "Favorites product2 demo description",
                     "name": "Demo product2"
                   }
                 ]
               },
               {
                 "category": "Stationary",
                 "data": [
                   {
                     "price": "10",
                     "description": "Favorites product1 demo description",
                     "name": "Demo product1"
                   },
                   {
                     "price": "13",
                     "description": "Favorites product2 demo description",
                     "name": "Demo product2"
                   },
                   {
                     "price": "13",
                     "description": "Favorites product2 demo description",
                     "name": "Demo product2"
                   }
                 ]
               },
               {
                 "category": "Food",
                 "data": [
                   {
                     "price": "10",
                     "description": "Favorites product1 demo description",
                     "name": "Demo product1"
                   },
                   {
                     "price": "13",
                     "description": "Favorites product2 demo description",
                     "name": "Demo product2"
                   },
                   {
                     "price": "13",
                     "description": "Favorites product2 demo description",
                     "name": "Demo product2"
                   }
                 ]
               }
             ]
           }
           });
        </script>
     </head>
     <body ng-app="myApp">
        <div ng-controller="myController">
           <h1>{{welcome}}</h1>
           <ul>
              <li ng-repeat="categories in products.ProductDetails">
                 <h3> {{categories.category}}</h3>
                 <ul>
                    <li ng-repeat="item in products.ProductDetails.data"></li>
                    <p>{{item.name}}</p>
                    <p>{{item.description}}</p>
                    <p>{{item.price}}</p>
                 </ul>
              </li>
           </ul>
        </div>
  </html>
  </body>

我正在使用 ng-repeat 循环遍历项目列表并显示它。我对使用多个 ng-repeat 以及如何绑定数据有点困惑。我需要类似于下图的输出。

提前致谢。

【问题讨论】:

  • 将内部的ng-repeat="item in products.ProductDetails.data 替换为ng-repeat="item in categories.data
  • ng-repeat

标签: javascript html angularjs angularjs-ng-repeat ng-repeat


【解决方案1】:

您可以将具有 ng-repeat 的元素视为具有自己的本地范围。可以将其想象为 {} 中用于 if 语句或类似内容的代码块。注意下面关闭的li 标签,你必须在li 标签创建的块内才能引用item

你还想重复categories.data

<li ng-repeat="item in categories.data">
                    <p>{{item.name}}</p>
                    <p>{{item.description}}</p>
                    <p>{{item.price}}</p>
</li>

【讨论】:

    【解决方案2】:

    替换

    ng-repeat="item in products.ProductDetails.data"
    

    ng-repeat="item in categories.data"
    

    here is plunker

    【讨论】:

    • 请提供适当的插件
    【解决方案3】:

    问题来了

          <ul>
              <li ng-repeat="categories in products.ProductDetails">
                 <h3> {{categories.category}}</h3>
                 <ul>
                    <li ng-repeat="item in categories.data"></li>//Set Categories
                    <p>{{item.name}}</p>
                    <p>{{item.description}}</p>
                    <p>{{item.price}}</p>
                 </ul>
              </li>
           </ul>
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签