現在AngularJSでAjaxで取得したデータを表示するだけのサンプルを作成しています。
Serviceを使ってコールバックを設定した時にコントローラーの変数へのアクセス方法がわからず、詰まっています。
sampleサービスで取得したデータ(data)をコントローラーのdataへ格納したいのですが、コールバック内ではthis.dataでアクセス出来ないのでどうすればいいのか困っています。
$scopeを使って変数を共有しようかとも思ったのですが、出来るだけ$scopeを使わない方向で考えています。
解決方法お待ちしております。
javascript
1var app = angular.module('MainApp', []); 2app.controller('MainController', ['sample', function(sample) { 3 this.data = ""; 4 this.submit = function() { 5 sample.getData(function(data) { 6 // 問題の部分 7 // コントローラーにthisではアクセス出来ないのでコントローラーのdataにdataを格納出来ない 8 }); 9 }; 10}]); 11 12app.service('sample', ['$http', function($http) { 13 this.getData = function(callback) { 14 var url = 'data.php'; 15 16 $http({ 17 url: url, 18 method: 'GET' 19 }) 20 .success(function(data, status, headers, config) { 21 console.log('success'); 22 callback(data); 23 }) 24 .error(function(data, status, headers, config) { 25 console.log('error'); 26 }); 27 }; 28}]); 29
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 14:42