我在控制台内ng-if
内有一个表单ng-include
,但没有提交...
我知道ng-if
和ng-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)"
,因为表单将在别处使用,表单代码需要重复使用。
答案 0 :(得分:0)
@Robert,您可以使用ng-show而不是ng-if。 因为ng-if基于表达式评估true / false分别创建/销毁了新的DOM树。