-3
今私はコントローラを持っており、次のようないくつかの関数を設定します。コールバック関数で変数data2を取得したい。しかし、今は未定義です。はコールバック関数の変数値の外に出ることができません
var searchApp = angular.module('reveal.searchUI');
searchApp.controller('SearchController', ['$rootScope','$scope','$q','$http','$timeout','$window',
'$i18next', '$filter','$sanitize', '$cookies',
'emcui.EventBus','RemoteUrl',"Reveal","Cache","AUTH_EVENTS",
function($rootScope, $scope, $q, $http, $timeout, $window, $i18next,
$filter, $sanitize,$cookies, eventBus,remoteUrlProvider, reveal,
cache, AUTH_EVENTS){
var self = this;
var data1 = "data1";
this.testing = function(){
var data2 = "data2";
setTimeout(function(){
//need to get the variable data2
},1000);
};
}]);
あなたがその変数にアクセスすることができないであろうことを示唆しているためにあなたのコード内では何もありません。 '' '.testing'''が実際に動いていますか? – jlogan
AngularJSフレームワークでは、コードは生の 'setTimeout'の代わりに[$ timeout service](https://docs.angularjs.org/api/ng/service/$timeout)を使用する必要があります。好奇心をそそるのは、コントローラが '$ timeout'を注入するが、それを使わないということです。これを説明できますか? – georgeawg
私はself.testing()でそれを実行しようとします。デバッグから、変数にアクセスすることはできません。 –