【发布时间】:2014-06-30 19:46:48
【问题描述】:
我是 Angular 的新手,在父子控制器之间进行通信时遇到了困难。
jsfiddle 在这里 - http://jsfiddle.net/NEuJ6/35/
我正在做的是基于带有新控制器的路由加载表单模板。然而,父控制器具有“保存并继续”按钮,我无法理解如何将子形式的更改(有效/无效状态)绑定到父级的按钮禁用状态。
简而言之,问题是在父控制器中获取子控制器中的表单的实时状态
我相信,这可以通过 $watch 解决,但我不确定如何继续。
控制器
<div ng-controller="MainCtrl">
<ul>
<li><a href="#/new">New User</a></li>
<li><a href="#/edit">Edit USer</a></li>
<li>To continue as guest, click on submit</li>
</ul>
<ng-view></ng-view>
<button ng-click="save()">Save and continue</button>
</div>
路线
app.config( function ( $routeProvider ) {
$routeProvider
.when('/edit', {
templateUrl: "form.html",
controller: "EditController"
})
.when('/new', {
templateUrl: "form.html",
controller: "NewController"
})
});
第二个问题是关于加载流程的下一步。当用户单击提交并且表单有效时,在这种情况下,我想使用新模板更改 ng-view。是否推荐以下内容(在控制器中)?
if (form.$valid) {
location.path('/next')
}
或者我应该将继续按钮设为a 标签并执行类似
<a href="#/next" ng-click="validate()">Save and continue</a>
在这两种情况下,我都会添加一条新路线。
.when('/next', {
templateUrl: "next.html",
controller: "NextController"
})
【问题讨论】:
标签: javascript angularjs