2013-08-04 219 views
-3

我试图返回一个函数的内部对象作为对象的另一个函数中:从嵌套函数返回对象?

function() { 
    // body... 
var dailyPrice = null; 
       function fun1(xml) { 
       /***function**/ 
       } 

       function fun2(xml) { 
       /*function***/ 
       } 
       function getRate(source, $scope) { 
        var dateValue = $("Date", source).text() || ""; 
        if (!dateValue) { 
         return null; 
        } 
        var dailyPrice = $("DailyPrice", source).text() || ""; 
        var weeklyPrice = $("WeeklyPrice", source).text() || ""; 
        var monthlyPrice = $("MonthlyPrice", source).text() || ""; 
        var isAvailable = $("IsAvailable", source).text() === "1"; 
        var minimumStay = Number($("MinimumStay", source).text()); 
        if (isNaN(minimumStay)) { 
         minimumStay = DEFAULT_MINIMUM_STAY; 
        } 

        return { 
         date: new Date(dateValue), 
         dailyPrice: dailyPrice, 
         weeklyPrice: weeklyPrice, 
         monthlyPrice: monthlyPrice, 
         reserved: !isAvailable, 
         minimumStay: minimumStay 
        }; 

       } 
       return { 
        getallrates: function(source, $scope){ 
         getRate(source, $scope); 
         console.log(getRate.dailyPrice); 
        }, 
        init: function(xml) { 
         parseXml(xml); 
        }, 
       } 
} 

现在当我运行getallrates();它返回undefined为什么? 我也曾尝试以下回报:

getallrates: function(source, $scope){ 
        var allrates = getRate(); 
        var getdailyprice = allrates.dailyPrice; 
        console.log(getdailyprice); 
       }, 
+0

看起来像你缺少的'返回的getRate(源,$范围)' –

回答

1

更改代码这样:

return { 
        getallrates: function(source, $scope){ 
         return getRate(source, $scope);        
        }, 
        init: function(xml) { 
         parseXml(xml); 
        }, 
       } 
+0

OK了'return'所以我如何得到每日价格从这个父母的功能? – vimes1984

+0

你正在从getRate函数返回它,所以它应该像调用一样简单:'var rates = getAllRates(source,$ scope); console.log(rates.dailyPrice);' – Tomer

+0

这仍然没有返回,我认为这是因为我试图从angularJS中的模块控制器中的服务中检索它,这会把我拉上墙。 – vimes1984