<a class="clickme" ng-click="vm.open()" >Click ME</a>
私のHTMLコードでは、上記のリンクをクリックすると、モーダルポップアップが開きます。このモーダルポップアップは、それ自身のコントローラーに関連付けられています。 このリンクが呼び出されると、httpリクエストで取得した値を渡す必要があります。これは私のコントローラーの様子です。このcontroolerでangularJS-変数から値を得ることができない
(function() {
angular
.module('myApp.abc', [])
.factory('myService', function($http) {
})
.controller('MyController', function($routeParams, myService, $scope, $uibModal,$http) {
var vm = this;
vm.open = function() {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'path to modal popup',
controller: 'modalPopController',
resolve: {
id: function()
{
var myid;
var baseUrl = 'services/';
$http.get(baseUrl+ 'get_user_session')
.then(function(response) {
myid = response.id;
return myid;
});
}
}
});
modalInstance.result.then(function (myCroppedImage) {
vm.member.avatar = myCroppedImage;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
});
})();
、これは私が変数IDに割り当てるしようとしている値を返すサービスでcommunicationgてる部分です。これはコードです:
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'path to modal popup',
controller: 'modalPopController',
resolve: {
id: function()
{
var myid;
var baseUrl = 'services/';
$http.get(baseUrl+ 'get_user_session')
.then(function(response) {
myid = response.id;
return myid;
});
}
}
});
しかし、私は未定義のエラーが発生しています。それは何ですか?
UPDATE
私はこのような静的な値を入れた場合、それが正常に動作します。
resolve: {
id: function() {
return 5;
}
}
私のサービスは、このようにJSONとして結果を返している:私はこれがあなたのために働くために起こっているかどうかわからないですが、あなたがこの
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'path to modal popup',
controller: 'modalPopController',
resolve: {
id: function()
{
var myid;
var baseUrl = 'services/';
var defer = $q.defer();
$http.get(baseUrl+ 'get_user_session')
.then(function(response) {
myid = response.id;
defer.resolve(myid);
});
return defer.promise;
}
}
});
未定義のエラー?それがmyid = response.idにある場合は、その行のサービスコール – Thangadurai
はいを確認する必要があります。サービスは正常に動作しています。 {"id": "5"、 "name": "John"} – Annabelle
サービスは正常です。私はそれを二重にチェックした。 @ Thangadurai – Annabelle