AngularJS嵌套控制器 - 表单未定义
angularjs nested controllers - form undefined
我有以下html结构:
<body ng-controller="checkoutController">
<div class="main clearfix" ng-controller="abroadCourseController">
//html useless information
<form name="checkout_form" ng-submit="submitForm()" novalidate>
<div validate-section="checkoutInfo" ng-show="stepOne">
//fields
<div class="confirmationBox">
<button type="button" ng-click="displayPaymentMethods()">SHOW PAYMENT METHODS</button>
</div>
</div>
<div validate-section="paymentAbroadCourseB2C" ng-show="stepTwo" >
//fields
<div class="confirmationBox">
<button type="button" ng-click="submitForm()">FINISH</button>
</div>
</div>
</form>
</div>
</body>
和以下 js:
var myApp = angular.module('myApp',[]);
myApp.controller('checkoutController', function ($scope) {
$scope.submitForm = function(){
$scope.stepOne = true;
$scope.stepTwo = false;
alert($scope.checkout_form);
alert('oi');
};
});
myApp.controller('abroadCourseController', function ($scope) {
$scope.stepOne = true;
$scope.stepTwo = false;
$scope.displayPaymentMethods = function(){
$scope.stepOne = false;
$scope.stepTwo = true;
alert($scope.checkout_form);
alert('oi');
};
});
基本上我需要的是通过父控制器访问checkout_form,但是,它是未定义的。有没有办法实现这一目标?
这是一个JSfiddle:http://jsfiddle.net/thm259o7/
在 Angular 中处理嵌套控制器的最佳方法是使用 Controller As Syntax https://toddmotto.com/digging-into-angulars-controller-as-syntax/
是的。像这样更改代码:
myApp.controller('abroadCourseController', function ($scope) {
$scope.form.checkout_form = {}
然后像这样更改 HTML:
<form name="form.checkout_form" ...>
就我而言,它有效。
相关文章:
- Javascript生成的表单未提交
- 如果ng单击附加到提交按钮,则表单未验证
- 表单未提交问题
- 表单未使用 MVC 提交任何值 Asp.Net
- Meteor JS自动表单自定义输入-没有当前视图
- 我的表单未将访问者引导至正确的页面
- 表单未在角度 js 中正确发布
- 图片上传无法在IE中工作,表单未提交
- 联系表单未发送表单值
- ajax和多个表单未提交
- 有两个输入的表单未提交
- 表单未提交即提交
- 在表单未传递的情况下使用.html()动态插入隐藏文本字段
- 表单未提交onclick事件
- JavaScript错误,表单未显示
- 表单未使用AJAX提交
- 表单未通过POST或GET提交数据
- WordPress插件表单未提交
- AngularJS嵌套控制器 - 表单未定义
- 自定义表单未在更改时提交