0
使用下面的代碼我不能將對象返回到工廠的返回值,並隨後在html中帶有空白字段,並帶有角度錯誤。Angular:將控制器更改爲工廠
Provider'theService'必須從$ get factory方法返回一個值。
我正在使用TingoDB(一個javascript版本的Mongo)和Angular在Node-Webkit中進行數據綁定的單頁應用程序。
我可以從控制器中查詢數據庫以顯示,過濾網頁等數據,但希望將此代碼更改爲Angular工廠,以便我可以跨多個控制器進行同步。 雖然我能夠使用僞數據將數據從工廠返回給控制器,但我一直無法從數據庫返回「實時」數據。
下面的代碼工作作爲控制器:
app.controller('MyCtrl', ['$scope', function($scope) {
function getData(callback) {
collection.find({}).toArray(function(err, docs) {
$scope.$apply(function() {
callback(docs);
});
});
}
function info(b) {
// console.log(b);
$scope.items = b;
}
getData(info);
}]);
此更改爲出廠時不工作:
app.factory("theService", function($scope) {
function getData(callback) {
collection.find({})).toArray(function(err, docs) {
$scope.$apply(function() {
callback(docs);
});
});
}
function info(b) {
// console.log(b);
$scope.users = b;
return {
all: $scope.users,
first: $scope.users[0]
}
}
getData(info);
});
控制器:
app.controller("MyCtrl", function($scope, theService) {
$scope.users = theService.all();
});
你需要多一點的描述不是「不工作」 – Claies
工廠必須返回的東西 – pixelbits
@ user3801428你可以請創建plunk或小提琴,有很多未知的變量,使代碼看起來很雜亂 –