0

我正在构建一个 CRUD,我想要一些模型与其他模型相关联。所以在一些更新/创建模板上,我需要添加一些其他模型并在提交表单时保存它们的 id。所以我做了一个由我的后端提供的基本表格。这是我尝试显示链接模型的部分:

<div ng-repeat="item in otherItems">
    <select ng-model="item" name="item" >
        <option value="1" ng-selected="item">
        <option value="2" ng-selected="item">
        <option value="3" ng-selected="item">
    </select>
    <a class="remove" ng-click="removeRelated(item)">remove</a>
</div>
<a ng-click="addRelated()"><i class="icon-plus"></i></a>

注意:otherItems 可以在开始时为空(在进行创建或项目未链接到任何其他相关模型的项目时)。因此,当一按添加/删除时,它将触发控制器的功能:

$scope.addRelated = function (){
    if (typeof $scope[otherItems]=="undefined")
        $scope[otherItems] = new Array();

    $scope[otherItems].push($scope[otherItems].length);
};

$scope.removeRelated = function (item){
    console.debug(item);
    var idx = $scope[otherItems].indexOf(item);
    if (idx !== -1) {
        $scope[otherItems].splice(idx, 1);
    }
};

我的问题是当我保存时,我得到了项目中项目的位置(所以它总是 0、1、2 ......)我不会有一个选定 ID 的数组。我想我的 addRelated 可能有问题。我究竟做错了什么?

这是一个截图来理解这个想法,因为我可能不是很清楚: 在此处输入图像描述

4

1 回答 1

1

所以像这样的东西? http://plnkr.co/edit/6eqWL5

标记..

<body ng-controller="MainCtrl">
  <div ng-repeat="otherItem in otherItems">
    <select ng-model="otherItem.selectedItem" ng-options="item for item in otherItem.items"></select>
    <a ng-click="removeOtherItem($index)">remove</a>
  </div>
  <a ng-click="addOtherItem()">add</a>
  <hr/>
  Selected:
  <ul>
    <li ng-repeat="otherItem in otherItems">
      otherItem[{{$index}}].selectedItem = {{otherItem.selectedItem}}
    </li>
  </ul>
</body>

编码

app.controller('MainCtrl', function($scope) {
  $scope.otherItems = [
      { 
        selectedItem: null,
        items: [1, 2, 3]
      },
      {
        selectedItem: null,
        items: [4, 5, 6] 
      }
    ];
  $scope.addOtherItem = function(){
    $scope.otherItems.push({ items: [7, 8, 9]});
  };
  $scope.removeOtherItem = function(index) {
    $scope.otherItems.splice(index, 1);
  };
});

抱歉,如果它与您的要求不符...问题有点含糊,所以我猜测其中的一些功能。

于 2012-10-26T18:06:21.700 回答