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>
申し訳ありませんが、私があなたに従わない例を挙げてください。このコードは、データベースのトリガーイベントログとintellijログウィンドウへの出力の両方から確認されるHTML変更イベントによって起動されます。私は現在、次のコードを試してみました。これは、上級レベルでそれを理解すると、約束を解決するはずですが、同じ結果が得られます。皮肉なことに、私はPOJOプロジェクトでこれを行うことができますが、grailsではできません。私が言及した他の方法を含む編集されたコードを見てください。 – user3274435
問題は角度コードであった:。myAPIService.GetNextBranchCode2([vm.fybkbra.fytbank])を( 関数(結果){ vm.fresult01 =結果、 vm.temp = angular.fromJson(vm.fresult01 ) アラート( "支店コードフィールドに次の分岐コードをフェッチ") vm.fybkbra.fybkbrabranchcode = vm.temp.fresult01; }、 関数(メッセージ){ 警告(メッセージ); } ) – user3274435