Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用角js克隆表单_Javascript_Forms_Angularjs - Fatal编程技术网

Javascript 用角js克隆表单

Javascript 用角js克隆表单,javascript,forms,angularjs,Javascript,Forms,Angularjs,我正在尝试创建一个包含一些细节的表单,在表单的末尾,我正在尝试创建一个按钮“添加新表单”。此按钮将在底部克隆相同的表单,并且每个表单都有“保存”按钮。 使用angularjs的最佳方式是什么?我如何使用一个控制器来完成它,以便它知道我正在执行的表单提交(保存) 谢谢,您可以在控制器中使用一个数组来定义表单,并使用ng repeat来呈现表单: HTML: )) 小提琴: 通常,formController被分配给作用域,但ng repeat创建了一个子作用域,我们在save方法中提供了该子作用域

我正在尝试创建一个包含一些细节的表单,在表单的末尾,我正在尝试创建一个按钮“添加新表单”。此按钮将在底部克隆相同的表单,并且每个表单都有“保存”按钮。 使用angularjs的最佳方式是什么?我如何使用一个控制器来完成它,以便它知道我正在执行的表单提交(保存)


谢谢,

您可以在控制器中使用一个数组来定义表单,并使用ng repeat来呈现表单:

HTML:

))

小提琴:

通常,formController被分配给作用域,但ng repeat创建了一个子作用域,我们在save方法中提供了该子作用域

<div ng-app="myApp" ng-controller="MyController">
    <div ng-repeat="form in forms">
        <hr/>
        <form name="myForm" ng-init="name = form.name">
            {{name}}
            <input name="myInput" type="text" ng-model="myInputValue"></input>
            <input type="button" value="Save" ng-click="saveForm(this)" ng-disabled="!myForm.$dirty"></input>
        </form>
    </div>
    <hr/>
    <input type="button" value="Create form" ng-click="createForm()"></input>
</div>
angular.module("myApp", []).controller('MyController', 
['$scope', function($scope){
    $scope.forms = [{name: "form1"}];

    $scope.createForm = function(){
        $scope.forms.push({name: "form" + ($scope.forms.length + 1)});
    };

    $scope.saveForm = function(formScope){
        alert("Save called for " + formScope.name + ", myInputValue = " + formScope.myInputValue);            
    };
}]