角度数据绑定中的ng-repeat和用户选择的值

疯狂的D

我有三层json父子对象(“人物”>“投影仪”>“模型”)。当用户单击一个投影仪时,我想捕获该值,并列出Model仅属于该投影仪。

的HTML

<div ng-app="myApp" ng-controller="MyController">
<h4>
  Two Way Data Bind
</h4>
<lable style="color:green"> The value you picked (JSON): </lable>
{{value.val}}

</br>
<div close-others="oneAtATime">
  <uib-accordion-group ng-repeat="num in list">
      <uib-accordion-heading>
          {{ num.Title }}                                 
      </uib-accordion-heading>
        <div class="list-group"> 
          <a href="#" ng-repeat="oum in num.Projectors" ng-model="num" ng-click="value.val=num">
            <li> {{ oum.Projector }} </li>
          </a>
        </div>
  </uib-accordion-group>

  <h4>
  Listing all Models for picket Projector {{num}}: </h4>

  <uib-accordion-group ng-repeat="first in value">
    <uib-accordion-group ng-repeat="second in first.Projectors">
           {{second.Model}}
    </uib-accordion-group>
  </uib-accordion-group>

 </div>
</div>

APP.JS

angular.module('myApp', [])
    .controller('MyController', function($scope){
      $scope.value = {val:"TEST"};
      $scope.filterBy = {};

      $scope.list = [{
            "Title":"King",
          "BossName":[
                {
                    "User": "TestUSer",
                    "Name": "TestName"
                }
            ],
           "Projectors":[
                {
                    "Projector": "TestParam",
                    "Type": [
                        {
                            "Name": "TestVI"
                        }
                    ],
                    "Model": [
                        {
                            "Service": "TestSev",
                            "Notification": "TestNot"
                        }
                    ]
                },
                {
                    "Projector": "TestHouse",
                    "Type": [
                        {
                            "Name": "TestI"
                        }
                    ],
                    "Model": [
                        {
                            "Service": "TestCri",
                            "Notification": "TestOk"
                        }
                    ]
                }
             ] 
      },
      {
            "Title":"Queen",
          "BossName":[
                {
                    "User": "Liz",
                    "Name": "Nothing"
                }
            ],
           "Projectors":[
                {
                    "Projector": "PTestParam",
                    "Type": [
                        {
                            "Name": "TestVI"
                        }
                    ],
                    "Model": [
                        {
                            "Service": "TestSev",
                            "Notification": "TestNot"
                        }
                    ]
                },
                {
                    "Projector": "PTestHouse",
                    "Type": [
                        {
                            "Name": "TestI"
                        }
                    ],
                    "Model": [
                        {
                            "Service": "TestCri",
                            "Notification": "TestOk"
                        }
                    ],
                    "Model": [
                        {
                            "Service": "3TestCri",
                            "Notification": "3TestOk"
                        }
                    ]
                }
             ] 
      }
      ];

});

问题: 1.如何捕获用户点击/选择的值?我尝试在该标签上使用ng-model进行数据绑定,但对我不起作用。2.现在,当我单击任何投影仪时,它也会列出其他投影仪的型号值。

演示:JFiddle

娜迦·桑迪普(Naga Sandeep)

1)看来您的json有点错误。最后一台投影机有2台投影机型号。通常应该是这样的

                     "Models":[
                          {
                              "Service": "TestCri",
                              "Notification": "TestOk"
                          },
                          {
                              "Service": "Test43Cri",
                              "Notification": "TestNotOk"
                          }
                      ]

然后我们在标记中访问它们

<uib-accordion-group ng-repeat="model in value.val.Models">
       {{model}}
</uib-accordion-group>

2)Listing all Models for picket Projector {{num}}:可能不会为您显示任何值,因为num将在的范围内创建ng-repeatng-repeat使用它自己的作用域。因此,您必须使用value.val在控制器范围内创建的

3)完成上述更改后,您无需

<uib-accordion-group ng-repeat="first in value">

4)<br>是正确的方法。</br>是错误的方式。这是一个自闭标签。

因此,您的标记将类似于

<div ng-app="myApp" ng-controller="MyController">
<h4>
  Two Way Data Bind
</h4>
<lable style="color:green"> The value you picked (JSON): </lable>
{{value.val}}

<br>
<div close-others="oneAtATime">
  <uib-accordion-group ng-repeat="num in list">
      <uib-accordion-heading>
          {{ num.Title }}                                 
      </uib-accordion-heading>
        <div class="list-group"> 
          <a href="#" ng-repeat="oum in num.Projectors" ng-model="oum" ng-click="value.val=oum">
            <li> {{ oum.Projector }} </li>
          </a>
        </div>
  </uib-accordion-group>

  <h4>
  Listing all Models for picket Projector: </h4>
    <uib-accordion-group ng-repeat="model in value.val.Models">
           {{model}}
    </uib-accordion-group>
 </div>
</div>

和你的js将是这样的

angular.module('myApp', [])
    .controller('MyController', function($scope){
      $scope.value = {val:"TEST"};
      $scope.filterBy = {};

      $scope.list = [{
            "Title":"King",
          "BossName":[
                {
                    "User": "TestUSer",
                    "Name": "TestName"
                }
            ],
           "Projectors":[
                {
                    "Projector": "TestParam",
                    "Type": [
                        {
                            "Name": "TestVI"
                        }
                    ],
                     "Models":[
                        {
                            "Service": "TestSev",
                            "Notification": "TestNot"
                        }
                    ]
                },
                {
                    "Projector": "TestHouse",
                    "Type": [
                        {
                            "Name": "TestI"
                        }
                    ],
                     "Models":[
                        {
                            "Service": "TestCri",
                            "Notification": "TestOk"
                        }
                    ]
                }
             ] 
      },
      {
            "Title":"Queen",
          "BossName":[
                {
                    "User": "Liz",
                    "Name": "Nothing"
                }
            ],
           "Projectors":[
                {
                    "Projector": "PTestParam",
                    "Type": [
                        {
                            "Name": "TestVI"
                        }
                    ],
                     "Models":[
                        {
                            "Service": "TestSev",
                            "Notification": "TestNots"
                        }
                    ]
                },
                {
                    "Projector": "PTestHouse",
                    "Type": [
                        {
                            "Name": "TestI"
                        }
                    ],
                    "Models":[
                          {
                              "Service": "TestCri",
                              "Notification": "TestOk"
                          },
                          {
                              "Service": "Test43Cri",
                              "Notification": "TestNotOk"
                          }
                      ]
                }
             ] 
      }
      ];

});

演示在这里加油。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

角度数据绑定在数据行选择上

来自分类Dev

角度数据绑定-手动设置模型值

来自分类Dev

如何使用角度数据绑定将复选框绑定到选择的禁用属性?

来自分类Dev

如何使用角度数据绑定将复选框绑定到选择的禁用属性?

来自分类Dev

使用 ng-repeat 缓慢加载具有大数据的角度数据表

来自分类Dev

输入的角度ng模型未在ng-repeat中绑定

来自分类Dev

输入的角度ng模型未在ng-repeat中绑定

来自分类Dev

角度数据-将更新值绑定到范围时遇到麻烦(使用滑块)

来自分类Dev

角度数据-将更新值绑定到范围时遇到麻烦(使用滑块)

来自分类Dev

角度ng-repeat不会绑定动态创建的数组的数据

来自分类Dev

ng-repeat中的数据绑定范围

来自分类Dev

ng-repeat中的角度组数据

来自分类Dev

角度ng-repeat绑定到array中的对象数组

来自分类Dev

ng-repeat中的角度材料选择

来自分类Dev

如何使用ng-repeat和ng-model绑定数据(在表单中)

来自分类Dev

角度数据绑定问题

来自分类Dev

如何获取角度数据表中的搜索框值?

来自分类Dev

角度失败将元素的ng-show绑定到ng-repeat中

来自分类Dev

角度翻译在角度数据表的自定义分页和信息中不起作用

来自分类Dev

ng-repeat中的Angular JS绑定范围数据形成

来自分类Dev

AngularJS范围未绑定ng-repeat中的数据

来自分类Dev

角度-通过ng-options将以下数据绑定到选择字段

来自分类Dev

角度数据绑定未显示数据

来自分类Dev

通过ng-repeat绑定ng-model中的值

来自分类Dev

角度ng模式防止值绑定

来自分类Dev

编辑和删除角度数据表

来自分类Dev

角度数据绑定-输入type =“ number”

来自分类Dev

角度数据绑定不起作用

来自分类Dev

角度数据绑定-输入type =“ number”

Related 相关文章

热门标签

归档