1
私はAngularJSコントローラの異なるインスタンス間でデータを渡すためにサービスを利用しています。私はこれが最良の方法ではないことを知っていますが、私の場合に合った方法です。問題は、そのサービスからデータを取得できないことです。anglejsでサービスを利用できない
var app = angular.module('MovieApp', ['ngResource']);
app.factory('factMovies', function($resource) { //this returns some movies from MongoDB
return $resource('/movies');
});
app.service('SnapshotService', function(factMovies) {
//this is used to pass data to different instances of the same controller
//omitted getters/setters
this.snapshots = [];
this.init = function() {
var ctrl = this;
var resp = factMovies.query({}, function() {
if (resp.error) {
console.log(resp.error)
} else {
tempDataset = []
//do stuff and put the results in tempDataset
ctrl.snapshots.push(tempDataset);
console.log(tempDataset); //prints fine
return tempDataset;
}
});
};
});
app.controller('TileController', function(SnapshotService) {
this.dataset = [];
this.filters = [];
this.init = function() {
var ctrl = this;
var data = SnapshotService.init(function() {
console.log(ctrl.data); //doesn't even get to the callback function
});
};
});
私は本当に私が間違ってやっているかを把握することはできません。..
は、あなたの答えをありがとう、それは私が私が知っていた方法を少し理解して作られましたコールバック関数。私は宿題を終えて今すぐ働くことができました! –