在指令内验证具有动态名称的表单

时间:2014-02-23 16:03:01

标签: javascript angularjs angularjs-directive

<form name="{{ formname }}" novalidate>
    <input type="text" ng-model="first_name" required>
    <input type="text" ng-model="last_name" required>
    <input type="text" ng-model="email" required>
    <span class="error" ng-show="formname.$invalid">Fill in required fields.</span>
    <button type="submit"></button>
</form>

我正在尝试使用Angular的内置验证来验证表单,但是因为formname是通过从作用域传入的文本动态设置的,所以我不确定如何调用它。上述尝试无效。

1 个答案:

答案 0 :(得分:1)

您可以在控制器的帮助下完成。定义另一个变量(以下示例中的f),观看formname并相应地更新f

.controller("...", function($scope) {
    $scope.first_name = "";
    $scope.formname = "fff";
    $scope.f = null;
    $scope.$watch("formname",function(newval,oldval,scope) {
        scope.f = scope[newval];
    });
});

请参阅小提琴:http://jsfiddle.net/T7vuD/