Salut tout le monde j'ai 1 formulaire avec plusieurs contrôleur avec plusieurs md-autocomplete de mongodb et md-datepicker avec ($ watch) pour dinamic min, max jour dans l'application angulaire-météore J'ai un problème avec soumettre le formulaire et obtenir la valeur de MD-autocomplete & MD-datepicker:Angulaire js forme soumettre avec plusieurs contrôleur
`<form ng-controller="SubmitCtrl" style="padding-left: 120px;" ng-submit="submit()" name="Form">
<div ng-controller="datesCtrl as vm" ng-form name="DateForm" id="myDatePicker">
<md-input-content>
<md-datepicker
onkeydown="return false"
name="myDate"
ng-model="myDate"
md-hide-icons="all"
md-current-view="year"
md-min-date="ctrl.minDate"
md-max-date="ctrl.maxDate"
md-open-on-focus="true">
</md-datepicker>
</md-input-content>
{{myDate | date: "yyyy-MM-dd"}}
</div>
<div ng-controller="Nationality as vm" class="form-group" ng-form name="NationalityForm">
<md-input-content id="myDatePicker">
<md-autocomplete flex
md-input-name="NationalityField"
ng-model="NationalityField"
md-input-minlength="3"
md-no-cache="true"
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in vm.getMatches(searchText)"
md-item-text="item.country_name"
md-floating-label="Nationality">
<md-item-template>
<span>{{item.country_name}} -</span>
<span
md-highlight-text="vm.searchText"
md-highlight-flags="^i">{{item.country_code_2_letter}}</span>
</md-item-template>
</md-autocomplete>
<p>country:{{selectedItem.country_name + selectedItem.country_code_2_letter}}</p>
</md-input-content>
`
ma valeur est disponible dans chaque contrôleur séparément et je peux console.log: console.log($scope.selectedItem);
et mon contrôleur est soumettre :
angular.module('GntApp')
.controller('SubmitCtrl', ['$scope', function($scope) {
$scope.list = [];
$scope.submit = function(){
if ($scope.test) {
$scope.list.push(this.test);
console.log($scope.test);
}
if ($scope.myDate) {
$scope.list.push(this.myDate);
console.log($scope.$parent.myDate);
}
Je sais que mal, mais comme je l'ai lu que je devrais obtenir la valeur d'un autre contrôleur avec enfant parent, mais je ne peux pas trouver une bonne documentation pour cela que j'essaie même angular.element:
$scope.Date = angular.element(myDatePicker);
console.log($scope.Date);
mais ne fonctionne toujours pas toute suggestion ou exemple sauvera ma journée.
Cher @ ehsan88 merci pour réponse rapide maintenant son aide pour obtenir les données à l'extérieur contrôleur mais pour soumettre le formulaire J'ai encore problème: '.Commande (« SubmitCtrl », fonction ($ champ d'application) {$ scope.myObject = {}; $ scope.list = []; scope.submit de $ = function() { if ($ scope.myObject.var1) { console.log (myObject. var1); } } ' Je change mais j'obtiens une erreur: ' myObject n'est pas défini' désolé pour newby erreur et manque de connaissance –
@JohnDoe le problème peut être dû à la vérification de la variable imbriquée. Notez que lorsque vous n'avez pas entré de texte dans la zone de saisie, $ scope.myObject' sera 'undefined' et vous obtiendrez une erreur Type en évaluant' $ scope.myObject.var1'. Cochez cette question pour vérifier correctement les objets imbriqués: https://stackoverflow.com/questions/2631001/javascript-test-for-existence-of-nested-object-key – ehsan88