2015-07-13 4 views
0

Я вызываю следующую фабрику в своем контроллере с MakeBusMarkers(orderedFilteredData).угловая фабрика, оператор возврата в то() обещание возвращает undefined

Console.log(mark) возвращает действительный объект (называемый непосредственно перед оператором return).
Я предполагаю простой ответ, но что я делаю неправильно?

.factory('MakeBusMarkers', ['busesByDepot', '$timeout', 'CamelToString', function(busesByDepot, $timeout, CamelToString){ 

// make leaflet map markers from filtered data 

return function(orderedFilteredData){ 
    var mark = {}; 

    busesByDepot.then(function(keyMap){  
     orderedFilteredData.forEach(function(currentVal){ 
      mark[currentVal.num] = { 
       message : '#' + currentVal.num.toString() 
      } 

      ...some additional code here... 

     console.log(mark); 
     return mark; 
    }); 
} 

}]) 
+0

Как вы называете busesByDepot.Will у пожалуйста, поделитесь им –

+0

Вы не хватает '' return' перед busesByDepot.then (...) '? – franciscod

ответ

0

Правильно,

Фабрика затем возвращает объект обещание. Спасибо.

.factory('MakeBusMarkers', ['busesByDepot', '$timeout', 'CamelToString', function(busesByDepot, $timeout, CamelToString){ 

// make leaflet map markers from filtered data 

return function(orderedFilteredData){ 
var mark = {}; 

return busesByDepot.then(function(keyMap){  
    orderedFilteredData.forEach(function(currentVal){ 
     mark[currentVal.num] = { 
      message : '#' + currentVal.num.toString() 
     } 

     ...some additional code here... 

    console.log(mark); 
    return mark; 
}); 
} 

}])