我有一个表单,它从用户那里获取资源的输入。每个资源都有许多部分,每个部分都有许多链接。我添加了用户动态地将部分字段添加到表单的功能,但是当涉及到如何动态地将链接字段添加到每个部分时,我很遗憾。
我的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的新手,并且不太知道如何找到当前部分并推送另一个链接。
答案 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功能会将该部分作为参数接收,因此您可以直接修改它。