$http
サーバーからデータを取得するサービス内で呼び出しを行います。何らかの理由でサービスを動作させることができません - 何も起こりません。サーバーコードが機能することはわかっています$http
。コントローラー内の関数内に呼び出しを配置すると、サーバーデータが期待どおりに取得されるためです。これが私がこれまでに持っているコードです:
app.service('myService', function($q,$compile,$http) {
this.getData = function() {
var deferred = $q.defer();
var promise = $http.get('myfile.php').success(function (data) {
var response = $compile(data)($scope);
deferred.resolve(response);
});
return deferred.promise;
};
});
また、次のようなことをすると、このサービスを使用するコードが機能することもわかっています。
app.service('myService', function() {
this.getData = function() {
return 'TEST';
};
});
次に、このサービスを利用する div に「TEST」という単語が表示されます。とても近くにいるような気がしますが、何かが欠けています。私が間違っていることについてのアイデアはありますか?
アップデート:
controller: function($scope, $http, $rootScope, myService){
var scope = $rootScope;
scope.viewMyData = function() {
var element = myService.getData();
$('#myDiv').html(element);
}
}
HTML:
<div ng-click="viewMyData()">Click Here</div>
<div id="myDiv"></div>
コードを削除して(上記のように)myService
単純に返すとTEST
、「TEST」が に表示されid="myDiv"
ます。しかし、何らかの理由で$http
呼び出しがトリガーされていません。