0
的index.html角控制器和路由控制器
<body>
<div data-form-modal >
<form>
<input type='text' name='test'/>
<input type='submit' value='submit' ng-click='submit()'/>
//this submit() function is in mainCtrl
</form>
</div>
</body>
之间进行通信,这是我的行程:
app.config(function($routeProvider) {
$routeProvider
.when('/', {
controller: 'mainCtrl',
templateUrl: 'index.html'
})
.otherwise({
redirectTo: '/'
});
});
mainCtrl:
controller.mainCtrl = function(){
...
$scope.submit = function(){
alert(1)
}
}
形式模态指令:
directive.formModal=function(){
return {
...
}
}
当我点击提交按钮时,我尝试调用mainCtrl中的submit()函数,但没有发现它,因为mainCtrl是一个路由控制器,并且不属于任何范围,并且formModal指令可以不能访问提交方法。
我想mainCtrl处理RESTful服务和formModal指令处理表单验证,但我不知道如何从formModal调用方法mainCtrl,什么是mainCtrl和formModalCtrl之间的关系?
编辑:
我尝试RESTful方法转移到服务,并调用formModal指令控制器的服务方法,它工作正常,但我仍然需要访问mainCtrl以更新模型,以便视图可以相应地改变。
这是什么'controller'和'directive'对象?看起来像一个奇怪的方式来声明一个控制器和指令...尝试将你的控制器声明为'app.controller('mainCtrl',function(){...});'看看你是否可以点击? – callmekatootie
我使用'var controller = {}; controller.mianCtrl = function(){}'并将其添加到应用程序模块'app.controller(控制器)' – paynestrike
声明工作正常 – paynestrike