0
<div ng-controller="ctrl1"> 
    <form name="form1" ng-submit="submitForm()"> 
     <input type="text" name="email" /> 
    </form> 
</div> 

<div ng-controller="ctrl2"> 
    <button> Submit </button> 
</div> 

Вот от Упр 2, я хочу, чтобы вызвать форму представить действие для формы, которая находится в Упр 1Angularjs - Как отправить форму с другого контроллера?

Как добиться этого в angularJs?

+0

Вы только кнопку отправить в Упр 2? – Natiq

+1

Вероятно, самый простой способ - испустить событие на $ rootScope, например, ответ на этот вопрос http://stackoverflow.com/a/19498009/3459298. Если вы хотите избежать этого, скажите, потому что вы не хотите использовать polone rootScope, или вас беспокоит производительность, возможно, вы захотите реализовать свою шину событий как услугу, также указанную здесь http://stackoverflow.com/ a/27410307/3459298. –

+0

Этот пример, несомненно, поможет вам отправить с другого контроллера, используя службу $ controller. Проверьте образец, который вы получите за идею ...---> [Отправить от другого контроллера] (http://stackoverflow.com/questions/40477112/ionic-angularjs-calling-methods-via-template-outside-of-controller/40483559 # 40483559) –

ответ

0

Вы можете отправить событие нажатием кнопки, а затем использовать корневой указатель для его трансляции - ctrl1 может прослушать это, чтобы отправить форму в ответ.

0

Вы можете передать событие из второго контроллера и прослушать его в первом контроллере.

function CtrlOne($rootScope) 
 
{ 
 
    $rootScope.$on('submitEvent', function(event, args) { 
 
     //submit your form here 
 
    }); 
 
} 
 

 
function CtrlTwo($scope,$rootScope) 
 
{ 
 
    $scope.submit=function(){ 
 
    $rootScope.$emit('submitEvent', args); 
 
    } 
 
}
<div ng-controller="CtrlOne"> 
 
    <form name="form1" ng-submit="submitForm()"> 
 
     <input type="text" name="email" /> 
 
    </form> 
 
</div> 
 

 
<div ng-controller="CtrlTwo"> 
 
    <button ng-click="submit()"> Submit </button> 
 
</div>

+0

Я не вижу, как этот пример может работать. Эти два контроллера находятся в разных областях (события не собираются достигать границ собора), а также функция отправки недоступна, поскольку экземпляр контроллера не публикуется с использованием синтаксиса 'as'. –

0

Вы можете достичь с помощью $rootScope или services или event brodcasting

app.controller('ctrl2',['$scope','$rootScope',function($scope,$rootScope) { 
    $scope.submitForm = $rootScope.mainSubmit(); 
}]); 

app.run(function($rootScope){ 
    $rootScope.mainSubmit =function(){ 
     console.log("hey"); 
    }; 
}) 
Смежные вопросы