AngularJS在ng-if中提交表单

时间:2015-11-23 10:20:41

标签: javascript angularjs forms

我在控制台内ng-if内有一个表单ng-include,但没有提交...

我知道ng-ifng-include创建了自己的范围,但我认为您可以访问控制器方法..

的index.html

<div data-ng-controller="myCtrl">
    <div data-ng-include="form.html" data-ng-if="loadForm"></div>
</div>

form.html

<form action="" data-ng-submit="submit($event)">
    <input type="text" name="foo" data-ng-model="foo">
    <input type="submit" value="Go!">
</form>

ctrl.js

'use strict';
app.controller('myCtrl', function ($scope, $element, $http, $log) {
        $scope.loadForm = true;

        $scope.submit = function(e) {
            e.preventDefault();
            console.log("hello");
        };
    }
);

当我点击提交时,没有任何内容记录到控制台中,e.preventDefault();也没有触发......

我知道问题是范围层次结构......我不能data-ng-submit="$parent.submit($event)",因为表单将在别处使用,表单代码需要重复使用。

1 个答案:

答案 0 :(得分:0)

@Robert,您可以使用ng-show而不是ng-if。 因为ng-if基于表达式评估true / false分别创建/销毁了新的DOM树。