2017-11-06 18 views
-1

私はAPI上で投稿をすることを三重にしています。値の1つは、私はjsonから満ちているドロップダウンから取得する必要があります。これは私がJSONから値を取得するコードの一部です:

function comboNation(){ 
    $http.get('app/componentes/comboProcedence.json') 
    .then(function(data){ 
     vm.nation = data.data; 
    //console.log(vm.nation); 
    }); 
} 

EDIT、応答がちょうど2つの値です。これはJSONデータである:

[ 
    { 
    "Id": 1, 
    "value": "National" 
    }, 
    { 
    "Id": 2, 
    "value": "International" 
    } 
] 

HTMLビュー:コンソールログに

vm.btnProcedence = "Select one"; 

vm.getWhereIs = function(f){ 
    vm.isThere = f.Id; 
    vm.btnProcedence = f.value; 
    //console.log(vm.isThere); 
} 

vm.idDoc = vm.isThere; 

<div class="col-md-4">Procedence 
    <br> 
    <button type="button" id="options2" aria-expanded="false" aria-haspopup="true" role="button" data-toggle="dropdown" class="btn btn-default dropdown-toggle"> 
    {{$ctrl.btnProcedence}} 
    <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu" id="list2"> 
    <li ng-repeat="alo in $ctrl.nation"> 
     <a href="#" ng-click="$ctrl.getWhereIs(alo)">{{alo.value}}</a> 
    </li> 
    </ul> 
</div> 

さて、次のコードで、私が選択した値を取得しています、私はvm.isThereで選択した値を印刷します。ご覧のとおり、ng-clickにネストされています。この時点でうまくいきますが、ポストを作るために3倍にすると、選択された値はで、定義されていませんです。

これは私がポストを作ってるんだコードの一部です:

vm.travelData = function() { 
    var data = { 
    Name: vm.name, 
    IdDocumentType: vm.idDoc, 
    }; 
    loadInfo(data); 
    console.log(data); 
}; 

function loadInfo(data) { 
    var arr = { 
    Name: vm.name, 
    IdDocumentType: vm.idDoc, 
    }; 
    postInfo.save(arr).$promise 
    .then(function(response) { 
     console.log(response); 
    }); 
} 

HTMLビュー:

<button type="button" class="btn btn-primary" ng-click="$ctrl.travelData()">Send Info</button> 

誰かが定義されていない理由を知っていますか?

apiの応答が真であるため、エラーメッセージはありません。

あなたが私を助けてくれることを願っています。

Thanx事前に。

+0

あなたはJSONデータを使用して質問をactualizarすることはできますか? –

+0

あなたのcomboProcedenceも投稿してください。 – Priz

+0

完了!私は自分のjsonデータを入れます –

答えて

2

vm.idDoc = vm.isThere;は、vm.getWhereIs機能の中になければなりません。また:vm.nameundefinedです。

は、この例を参照してください:

(function() { 
 
    var app = angular.module("app", []); 
 
    app.controller("Controller", ["$scope", function($scope) { 
 
    $scope.nation = [{ 
 
     "Id": 1, 
 
     "value": "National" 
 
     }, 
 
     { 
 
     "Id": 2, 
 
     "value": "International" 
 
     } 
 
    ]; 
 

 
    $scope.btnProcedence = "Select one"; 
 

 
    $scope.getWhereIs = function(f) { 
 
     $scope.isThere = f.Id; 
 
     $scope.btnProcedence = f.value; 
 
     $scope.idDoc = $scope.isThere; 
 
     $scope.name = "A name..."; 
 
    }; 
 

 
    $scope.travelData = function() { 
 
     var data = { 
 
     Name: $scope.name, 
 
     IdDocumentType: $scope.idDoc, 
 
     }; 
 
     loadInfo(data); 
 
    }; 
 

 
    function loadInfo(data) { 
 
     var arr = { 
 
     Name: $scope.name, 
 
     IdDocumentType: $scope.idDoc, 
 
     }; 
 
     console.log(arr); 
 

 
     /* postInfo.save(arr).$promise 
 
     .then(function(response) { 
 
      console.log(response); 
 
     }); 
 
     */ 
 
    } 
 
    }]); 
 
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div data-ng-app="app"> 
 
    <div data-ng-controller="Controller"> 
 
    <div class="col-md-4">Procedence 
 
     <br> 
 
     <button type="button" id="options2" aria-expanded="false" aria-haspopup="true" role="button" data-toggle="dropdown" class="btn btn-default dropdown-toggle"> 
 
    {{btnProcedence}} 
 
    <span class="caret"></span> 
 
    </button> 
 
     <ul class="dropdown-menu" id="list2"> 
 
     <li ng-repeat="alo in nation"> 
 
      <a href="#" data-ng-click="getWhereIs(alo)">{{alo.value}}</a> 
 
     </li> 
 
     </ul> 
 
    </div> 
 
    <button type="button" class="btn btn-primary" data-ng-click="travelData()">Send Info</button> 
 

 
    </div> 
 
</div>

関連する問題