在字段js

时间:2015-08-29 20:50:01

标签: angularjs

我有一个表单,它从用户那里获取资源的输入。每个资源都有许多部分,每个部分都有许多链接。我添加了用户动态地将部分字段添加到表单的功能,但是当涉及到如何动态地将链接字段添加到每个部分时,我很遗憾。

我的html目前看起来像这样:

    <div class="form-group" ng-repeat="section in sections">
      <input type='text', ng-model="newResourceForm.sections" name="" placeholder="Enter a section name">
      // ng-repeat over links here
      <button ng-click="removeSection()" ng-show="$last" Remove section
    <button type='button', ng-click="addSection()" Add another section>

动态添加部分的功能:

      $scope.sections = [{"id": 1}];
      $scope.addSection = function() {
        var newSectionNo = $scope.sections.length+1;
        $scope.sections.push({"id": newSectionNo});
      }
      $scope.removeSection = function() {
        var lastSection = $scope.sections.length-1;
        $scope.sections.splice(lastSection);
      }

我的想法是我需要像这样构造$ scope.sections:$scope.sections = [{"id": 1, "links": [{"id": 1, "title": "", "url": ""}]但我是Angular的新手,并且不太知道如何找到当前部分并推送另一个链接。

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。要查找当前部分并向其推送另一个链接,您需要利用使用ng-repeat创建的变量。在您的情况下,这是section变量。您也可以将其传递给函数,如下所示:

<div class="form-group" ng-repeat="section in sections">

      <button type='button', ng-click='addLink(section)'>Add Link</button>

      <div ng-repeat='link in section.links'>
          <!-- Links here -->
      </div>

</div>

您在控制器中创建的新addLink功能会将该部分作为参数接收,因此您可以直接修改它。