मैं एक एपीआई पर पोस्ट बनाने की कोशिश कर रहा हूँ। मूल्यों में से एक मुझे इसे एक ड्रॉपडाउन से प्राप्त करना है जो एक जेसन से भरा हुआ है। यह उस कोड का हिस्सा है जहां मुझे जेसन से मान मिलते हैं:

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

संपादित करें और प्रतिक्रिया केवल दो मान हैं। यह जेसन डेटा है:

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

एचटीएमएल व्यू:

<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.btnProcedence = "Select one";

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

vm.idDoc = vm.isThere;

कंसोल लॉग पर, मैं चयनित मान को vm.isThere के साथ प्रिंट करता हूं। जैसा कि आप देख सकते हैं, ng-click पर नेस्टेड है। इस बिंदु पर, यह ठीक काम करता है, लेकिन जब मैं पोस्ट बनाने की कोशिश कर रहा हूं, तो चयनित मान अपरिभाषित है।

यह उस कोड का हिस्सा है जहां मैं पोस्ट कर रहा हूं:

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);
    });
}

एचटीएमएल व्यू:

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

कोई जानता है कि अपरिभाषित क्यों है?

एपीआई की प्रतिक्रिया सत्य है, इसलिए, कोई त्रुटि संदेश नहीं है।

क्या आपसे मुझे मदद मिल सकती है।

अग्रिम में थैंक्स।

-1
Chuck Villavicencio 7 नवम्बर 2017, 02:09

1 उत्तर

सबसे बढ़िया उत्तर

vm.idDoc = vm.isThere; vm.getWhereIs फ़ंक्शन के अंदर होना चाहिए। साथ ही: vm.name undefined है।

यह उदाहरण देखें:

(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>
1
Danny Fardy Jhonston Bermúdez 7 नवम्बर 2017, 18:51