Я пытаюсь использовать фабрику, которую я могу присвоить переменной угловой переменной. Однако всякий раз, когда я присоединяюсь к этому и использую console.log для возвращения этой переменной, я возвращаюсь с функцией как текст, а не как значение. Есть ли способ, которым я могу это исправить?Как вернуть функцию в переменную с областью?
========== ========== JS
annApp.factory('rssFeed', function()
{
return function()
{
var events = [];
$.get('xmlfile',
function(xml)
{
var json = $.xml2json(xml);
jsonb = JSON.stringify(json, undefined, 3);
// var events = [];
var description = json['#document']['rss']['channel']['item']['description'];
var title = json['#document']['rss']['channel']['item']['title'];
var date = json['#document']['rss']['channel']['item']['pubDate'];
events.push({'title': title, 'description':description, 'date': date});
return events;
});
return events;
}
annApp.controller('calendar', ['$scope', 'rssFeed', function($scope, rssFeed){
$scope.events = rssFeed;
console.log($scope.events);
}]);
Вы просто хотите позвонить на завод rssFeed и записать его на консоль? В этом случае вам нужно вызвать функцию 'console.log ($ scope.events());' Также я считаю, что строка после 'return events' должна быть'};}); ' – DenimChicken
Вот скрипка, которая правильно возвращающ функцию: http://jsfiddle.net/HB7LU/19871/ – DenimChicken