Я пытаюсь переместить всю бизнес-логику с моего контроллера на завод, но у меня возникли проблемы с отправкой полей данных.Как передать данные с завода на контроллер в angularjs?
factory.js
app.factory("Quote", function ($resource) {
// TODO: this shouldn't start with /en/
var quoteStatus = [];
var quoteLanguage = [];
var Quote = $resource("/en/quote/api/quote/:id", {}, {
retrieve: {
method: 'GET',
params: {},
isArray: true
},
query: {
method: 'GET',
params: {},
isArray: true,
url: '/en/quote/api/quote/'
},
fields: {
method: 'GET',
url: '/en/quote/api/quote/fields/ '
},
update: {
method: 'PATCH',
},
});
Quote.fields().$promise.then(function (fields) {
var tempObj = [];
for (key in fields.status) {
// must create a temp object to set the key using a variable
tempObj[key] = fields.status[key];
quoteStatus.push({
value: key,
text: tempObj[key]
});
}
for (key in fields.language) {
// must create a temp object to set the key using a variable
tempObj[key] = fields.language[key];
quoteLanguage.push({
value: key,
text: tempObj[key]
});
}
//$scope.addLanguage($scope.language);
Quote.status = quoteStatus;
Quote.language = quoteLanguage;
});
return Quote;
});
controller.js
$scope.quoteStatus = Quote.status;
Однако это не работает, так как $ scope.quoteStatus является неопределенным. Что мне не хватает?
Заранее спасибо.
Благодаря Панкай, но как я могу использовать 'getQuoteDetails' в мой контроллер? Я пробовал установить его так: 'Quote.prototype.quoteFields = function() {}' в моей factory.js, но все еще не определен. –
@ GustavoReyes Вы просмотрели обновленный ответ? –
Просто сделал. Благодаря! –