2017-06-07 10 views
0

どのようにselectを使ってanglejsとionic1から情報を得ることができますか?anglejsとionic1でselectから情報を取得するにはどうすればよいですか?

私はJSONから情報を取得して、「選択」を入れようとしています。しかし、私はこの "選択"から情報を選択し、IDと "選択"にある名前を取得しようとすると、それは表示されません。

私のhtml - > igreja.html

<ion-view view-title="Igrejas"> 
    <ion-nav-buttons side="left"> 
      <button class="button button-icon button-clear ion-navicon" menu-toggle="left"> 
      </button> 
    </ion-nav-buttons> 
    <ion-content> 
    <form ng-submit="realizarLogin()"> 
     <div class="list list-inset"> 
     <ion-item class="item-input item-select--full"> 
      <div class="input-label"> 
      Selecione a sua igreja 
      </div> 
      <select ng-model="login" ng-options="y.Nome for (x,y) in igrejaEscolhida"> 
      </select> 
      <h1> test: {{login.Nome}}</h1> 
      <h1> id: {{login.Id}} </h1> 
     </ion-item> 

     <button class="button button-block button-positive" type="submit">Entrar</button> 
     </div> 
    </form> 
    </ion-content> 
</ion-view> 

マイroutes.js

.state('app.igrejas', { 
    url: '/igrejas', 
    views: { 
     'menuContent': { 
     templateUrl: 'templates/igrejas.html', 
     controller: 'igrejasController' 
     } 
    } 
    }) 

マイcontroller.js

.controller('igrejasController', function($scope, $ionicModal, $timeout, $stateParams, $ionicPopup, $state, $rootScope, $http, $sce) { 



    $http.get(linkIgrejas).then(function(data){ 

    $scope.igrejaEscolhida = data.data; 

    console.log($scope.igrejaEscolhida); 

    $scope.igrejaEscolhida.forEach(function(element, index, array){ 
     element.Id = element.Id; 
     element.Nome = element.Nome; 
     console.log(element.Id); 
     console.log(element.Nome); 
    }) 

    }) 

    $rootScope.login = {}; 

    $scope.realizarLogin = function() { 


    var dadosDoLogin = { 
     params : { 
     nome: $rootScope.login.nome 
     } 
    } 

    $scope.selectUpdated = function(optionSelected) { 

     console.log('Updated'); 
     console.log(optionSelected); 

    }; 

    console.log($scope.selectUpdated); 

    $scope.loginF.Nome; 
    $scope.loginF.Id; 

    console.log($scope.loginF.Nome); 
    console.log($scope.loginF.Id); 


    $rootScope.teste = $rootScope.login.nome; 
    $scope.nomeIgreja = $rootScope.login.nome; 
    $scope.idIgreja = $rootScope.login.Id; 

    $rootScope.login.Id; 

     console.log($scope.nomeIgreja); 
     console.log($scope.idIgreja); 



    }; 
}) 

誰かが私を助けたり、私は「何を見せてもらえ"選択"で間違っていますか?

+0

'$ scope.igrejaEscolhida'は配列ですが、オブジェクトの構文であるigrejaEscolhidaで'(x、y)を使用しています。代わりに、 'ng-options =" yをyとしてみてください。代わりに、igrejaEscolhida "でyを指定してください。 – Claies

+0

'$ scope.igrejaEscolhida'のサンプルを置くことができます – abdoutelb

+0

私のコントローラのselectで選択されたものを取得できません。以前と同じように動作していますが、どのように変更するのですか?私のコントローラーのID?私はこのようなことを試みました:https://www.w3schools.com/angular/tryit.asp?filename=try_ng_select_object_y @Clies –

答えて

0

私はIDを取得するために管理し、この方法をテストしたとき、私は私のIgrejas.htmlとcontroller.js

Igrejas.html

<ion-view view-title="Igrejas"> 
    <ion-nav-buttons side="left"> 
      <button class="button button-icon button-clear ion-navicon" menu-toggle="left"> 
      </button> 
    </ion-nav-buttons> 
    <ion-content> 
    <form ng-submit="realizarLogin()"> 
     <div class="list list-inset"> 
     <ion-item class="item-input item-select--full"> 
      <div class="input-label"> 
      Selecione a sua igreja 
      </div> 
      <select ng-model="login.nome"> 
        <option ng-repeat="igrejaEscolhidas in igrejaEscolhida"> 
        {{ igrejaEscolhidas.Nome }} 
        {{ igrejaEscolhidas.Id }} 
        </option> 
      </select> 
     </ion-item> 

     <button class="button button-block button-positive" type="submit">Entrar</button> 
     </div> 
    </form> 
    </ion-content> 
</ion-view> 

マイcontroller.js

.controller('igrejasController', function($scope, $ionicModal, $timeout, $stateParams, $ionicPopup, $state, $rootScope, $http, $sce) { 



    $http.get(linkIgrejas).then(function(data){ 

    $scope.igrejaEscolhida = data.data; 

    console.log($scope.igrejaEscolhida); 

    $scope.igrejaEscolhida.forEach(function(element, index, array){ 
     element.Id = element.Id; 
     element.Nome = element.Nome; 
     console.log(element.Id); 
     console.log(element.Nome); 
    }) 

    }) 

    $rootScope.login = {}; 

    $scope.realizarLogin = function() { 


    $rootScope.teste = $rootScope.login.nome; 

    console.log($rootScope.teste); 




    }; 
}) 

を変更と名前が、彼らは一緒にこのプリントのように、私はそれらを分離する必要があります、それらはどうやってそれらをangularjsで分けるのですか?

マイプリント:

http://prntscr.com/fhg4py

それとも誰かが私は、このIDを持っているということで、idと別の名前を取得することができ、その名前から来る方法を知っています同じ選択ですか?私は一緒に持っています。

0

は、選択されたオプションの値からIDを取る、その後selectとNG-モデルをID

<option ng-repeat="igrejaEscolhidas in igrejaEscolhida" value="{{ igrejaEscolhidas.Id }}"> 
        {{ igrejaEscolhidas.Nome }} 
        </option> 

を表すために値そのものを置くようにしてください。

+0

私は変更していくつかの助けをありがとう、私はこれが好きでした:それは私のために働いています。 @Abdoutelb –

+0

@LucasSantosあなたはデフォルトオプション '' – abdoutelb

関連する問題