2017-07-12 3 views
0

私の頭が長すぎます。実際のデータに約束を変換するために私が見逃しているものは見えません。ユーザーは、サービスAPI(返されたデータの確認)を呼び出す変更イベントを発生させる国を選択します。残りの唯一のものは、実際のデータが返され、別のコントロールに値が設定されます。角度1.5の約束は、Grails 3.2を使用したデータの代わりにオブジェクトオブジェクトを返します。角度プロファイル

コントローラコード

service.GetNextBranchCode2 = function (VParm) { 

      console.log('service.GetNextBranchCode2 fired received parameter value of ' + [VParm]); 

      var deferred = $q.defer(); 

      if ([VParm]) { 
       // Resolve the deferred $q object before returning the promise 
       $http.get('/api/fireFunc1/'+ [VParm]).success(function (data) { 

        // Store your data or what ever.... 
        // Then resolve 
        deferred.resolve(data); 


       }).error(function (data, status, headers, config) { 
        deferred.reject("Error: request returned status " + status); 
       }); 
       return deferred.promise; 
      } 

     }; 

     return service; 

    }) 
    .controller("FybkbraCreateController", FybkbraCreateController); 

function FybkbraCreateController(Fybkbra, $state, $stateParams, Fytrnlt, Fytbank, Stvnatn, $filter, myAPIService) { 

    var vm = this; 

    vm.GetNextBranchCode = function() { 
     // myAPIService.GetNextBranchCode([vm.fybkbra.fytbank]).then(function (result) { 
      //vm.FuncResults = result.data; 
      // var FuncResults = result.data; 

      //vm.fybkbra.fybkbrabranchcode = FuncResults.toString(); 

     // same result as above code, returns object not resolved data 
      var promise = myAPIService.GetNextBranchCode([vm.fybkbra.fytbank]); 
      promise.then(function(greeting) { 
       alert('Success: ' + greeting); 
      }, function(reason) { 
       alert('Failed: ' + reason); 
      }, function(update) { 
       alert('Got notification: ' + update); 
      }); 

     //}); 
    }; 
} 

HTMLコード別の方法しかしYIELDS同じ結果にしようとする(関連)

angular //1.5 
    .module("fytrnlt.fybkbra") 

    //create new factory section 

    .factory('myAPIService', function ($resource, $http, $q) { 
     var service = {}; 

     service.GetNextBranchCode = function (VParm) { 

      console.log('service.update fired received parameter value of ' + [VParm]); 

      var FResult = $resource("/api/fireFunc1/" + [VParm]); 

      return FResult.get().$promise.then(function (data) { 
       console.log('get fired') 

       return data 
      }) 

     }; 

更新されたコード - 変更イベントが発生RESTfulなGrailsのAPIリソースへの呼び出しを

<div class="fieldcontain required"> 
    <label for="fybkbrabankcode">Bank 
     <span class="required-indicator">*</span> 

    </label> 
     <select required="" name="fytbank" ng-required="true" id="fytbank" ng-model="vm.fybkbra.fytbank" ng-change="vm.GetNextBranchCode()" ng-options="fytbank.id as (fytbank.id + ':' + fytbank.fytbankbanktitle) for fytbank in vm.fytbankList"></select> 
</div> 
    <div class="fieldcontain required"> 
    <label for="fybkbrabranchcode">Branch Code 
     <span class="required-indicator">*</span> 
    </label> 
    <input required="" name="fybkbrabranchcode" id="fybkbrabranchcode" ng-model="vm.fybkbra.fybkbrabranchcode" type="text" readonly /> 
    </div> 

答えて

1

実際に約束を忘れるのを忘れていたと思います。

var promise = myAPIService.GetNextBranchCode([vm.fybkbra.fytbank]); 
promise().then(function(greeting) { // <- notice the brackets 
    alert('Success: ' + greeting); 
}, function(reason) { 
    alert('Failed: ' + reason); 
}, function(update) { 
    alert('Got notification: ' + update); 
}); 
+0

申し訳ありませんが、私があなたに従わない例を挙げてください。このコードは、データベースのトリガーイベントログとintellijログウィンドウへの出力の両方から確認されるHTML変更イベントによって起動されます。私は現在、次のコードを試してみました。これは、上級レベルでそれを理解すると、約束を解決するはずですが、同じ結果が得られます。皮肉なことに、私はPOJOプロジェクトでこれを行うことができますが、grailsではできません。私が言及した他の方法を含む編集されたコードを見てください。 – user3274435

+0

問題は角度コードであった:。myAPIService.GetNextBranchCode2([vm.fybkbra.fytbank])を( 関数(結果){ vm.fresult01 =結果、 vm.temp = angular.fromJson(vm.fresult01 ) アラート( "支店コードフィールドに次の分岐コードをフェッチ") vm.fybkbra.fybkbrabranchcode = vm.temp.fresult01; }、 関数(メッセージ){ 警告(メッセージ); } ) – user3274435

関連する問題