2013-07-31 38 views
0

好吧,這實際上並不是我在我的項目中使用的數據,但我簡化了一點。angularjs工廠結構的幾種方法

但我有這個廠我angularjs應用:

myApp.factory('inputinfo', function() { 


var self = { 


    test: function (in) { 
     return "hello " + in; 
    } 
    test2: function (in) { 
     return "hello " + in; 
    } 


}; 

return { test: self.test, test2: self.test2 }; 

}); 

的作品不錯,但我想要的是「結合」起來。我的意思是,現在即時通訊既TEST1和TEST2沿解析參數,我想他們從同一個函數中使用它...所以我想是這樣的:

var self = { 


    nfo: function (in) { 

     var selfObj = { test1: test1(), test2: test2() }; 

     function test1() { 
      return "hello " + in; 
     } 

     function test2() { 
      return "hello " + in + " ok"; 
     } 


     return { self: self.selfObj } 


    } 


}; 

return { nfo: self.nfo }; 

但只是返回undefined。

所以要儘量excatly解釋什麼是我想要做的:

說,我叫inputinfo工廠,我應該能夠調用和使用它是這樣的:

var some = inputinfo.nfo("something"); 

,然後我想能夠做到:

alert(some.test1); 

所以我可以不斷得到所有的值(測試1,測試2等),當我打電話給一些。

我很難理解我需要寫這個來得到我想要的結果。很抱歉,如果我沒有解釋它那麼好:-S

編輯:

也許解釋它在一個簡單的方法:

說,我有這樣的:

function atest(in) 
{ 

    var values = { 
     one: function() { 
      return "hello " + in;  
     } 
     two: function() { 
      return "hello " + in " ok"; 
     } 
    } 

    return { values: values }; 

} 

與我可以做:

var result = atest("something"); 
alert(result.values.one()); 

所以如何我的結構,在factiory獲得相同的結果? (並且可以調用它以同樣的方式?)

+0

btw爲什麼這是下來投票? – JohnMalkowich

回答

0

確定做了這樣的事情:

myApp.factory('inputinfo', function() { 

    return function (in) { 
    var self = { 


     test: function() { 
      return "hello " + in; 
     }, 
     test2: function() { 
      return "hello " + in; 
     } 


     }; 

     return self; 

    } 

} 

然後,我可以把它想:

var test = inputinfo("dude"); 
alert(test.test()); 

,會給我結果:你好夥計