Angularjs 如何将表单明确性作为函数参数传递

Angularjs 如何将表单明确性作为函数参数传递,angularjs,Angularjs,角度1.3.0。我试图在表单上使用$setPristine方法,问题是我在同一页上有多个类似的表单,每个表单都有一个动态名称。我找到的每个$setPristine示例都使用以下语法:$scope.myFormName.$setPristine()。我可以尝试通过将动态表单名称的变量部分传递给函数来执行动态评估,以便它可以使用myFormName语法。但是显式地将表单传递给函数似乎更简洁,更不用说比使用$scope更容易测试了 我想要的是: HTML 您可以将表单名称作为字符串传递,并使用该字符串

角度1.3.0。我试图在表单上使用
$setPristine
方法,问题是我在同一页上有多个类似的表单,每个表单都有一个动态名称。我找到的每个
$setPristine
示例都使用以下语法:
$scope.myFormName.$setPristine()
。我可以尝试通过将动态表单名称的变量部分传递给函数来执行动态评估,以便它可以使用myFormName语法。但是显式地将表单传递给函数似乎更简洁,更不用说比使用$scope更容易测试了

我想要的是:

HTML


您可以将表单名称作为字符串传递,并使用该字符串将表单设置为原始

HTML

更新: 如果绝对需要将表单对象传递到函数中,而不是在作用域上对其求值,则可以在ngrepeat中使用
this
,从模板访问
$scope
。所以你会得到这样的结果:

HTML


我希望得到的答案不是使用$scope,而是一个传递的值。甚至只是一个自信的声明,说这是不可能的。@Josh Diehl我更新了我的答案。您可以使用
访问循环中的范围。
... loop over things
<form name="thing_form_{{thing.id}}">
... inputs and stuff
    <input type="submit" ng-click="thing = reloadThing(thing, thisform); " value="Do">
</form>
$scope.reloadThing = (thing, form) ->
        ... do stuff
        form.$setPristine()
... loop over things
<form name="thing_form_{{thing.id}}">
    ... inputs and stuff
    <input type="submit" ng-click="thing = reloadThing(thing, 'thing_form_' + thing.id ); " value="Do">
</form>
$scope.reloadThing = (thing, formName) ->
        ... do stuff
        $scope[formName].$setPristine()
... loop over things
<form name="thing_form_{{thing.id}}">
    ... inputs and stuff
    <input type="submit" ng-click="thing = reloadThing(thing, this['thing_form_' + thing.id] ); " value="Do">
</form>
$scope.reloadThing = (thing, form) ->
        ... do stuff
        form.$setPristine()