如何在ng-repeat中填充依赖于另一个下拉列表的下拉列表?

时间:2016-12-26 13:14:25

标签: angularjs

我有一个表,对象,有两列:id和name。 第二个表,objectAttributes,有四列:id,name,mainAttr和引用第一个表列的objectId。 mainAttr是一个布尔值,表示此属性是默认值。 我想为具有可变行数的用户创建一个表(其逻辑与此无关),并且在每行中我想要两个下拉列表:一个用于上面表1中的对象,第二个用于属于的属性到那个对象。当用户更改对象的下拉列表时,下拉列表2也必须更改,并且应选择默认属性。 这是我试图做的事情:

   <tr ng-repeat="(parentIndex, data) in p">
       <td >{{data.ColumnName}}</td>
       <td >
          <select ng-model="data.ObjectId" ng-options="x.OBJECT_ID as x.OBJECT_NAME for x in objectsList" ng-change="hasAllObjectId()" style="width:100%">
             <option value="">---</option>
          </select>
       </td> 
       <td >
          <select  ng-options="x.OBJECT_ID as x.OBJECT_NAME for x in objectsAttributeList" ng-change="hasAllObjectId()" style="width:100%">
             <option value="">---</option>
          </select>
       </td>
  </tr>

这应该是这样的:

Using ng-repeat

服务器是WebAPI。 有人知道处理这个问题的正确方法吗?

1 个答案:

答案 0 :(得分:0)

尝试以下解决方案

&#13;
&#13;
function MyCntrl($scope) {
    

    $scope.values = 
       [
           {
               "name": "value1",
               "version":
               [
                   "10"
               ]
           },
           {
               "name": "value2",
               "version":
               [
                   "1", "2"
               ]
           }
       ];

    
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app>
    <div ng-controller="MyCntrl">
        <select ng-model="value" ng-options="x.name for x in values"></select>
        <select ng-model="version" ng-options="val for val in value.version"></select>
    </div>
&#13;
&#13;
&#13;

希望这会对你有所帮助