2015-11-24 65 views
1

總之我的問題是這樣的:我想使用角常量功能來保存我需要在我的應用程序中的值。如果可以使用同一個常量的另一個屬性的值構建屬性,那麼我正在遊蕩。像這樣:使用常量屬性在相同的常量內建立另一個屬性angularjs

app.constant("url", { 
    basicUrl: "/svc", 
    managementPanel: basicUrl + "/managemnent.html" 
    // and so on... 
}); 

有沒有什麼辦法可以做到這一點?我嘗試使用「this」關鍵字,但它引用了窗口對象。

回答

1

你可以把它所有的功能:

(function() { 
    var constant = {}; 

    constant.base = 'base'; 
    constant.nested = constant.base + '/nested'; 
    constant.nested2 = constant.nested + '/nested2'; 

    app.constant('test', constant) 
})(); 
+0

如果我想在同一個常數內的另一個屬性,以使用「嵌套」? –

+1

即http://plnkr.co/edit/BiUYhir4Qt4aAHgLUbTk?p=preview –

+0

我喜歡這最後的解決方案!請修改您的初始答案,以便我可以選擇您的答案作爲最滿意的答案(儘管可以從最初的答案中推導出後面的答案)。 –

1

您將需要使用工廠而不是常量速記。

app.factory("url", function() { 
    var url = {}; 
    url.basicUrl = "/svc"; 
    url.managementPanel = url.basicUrl + "/managemnent.html"; 
    return url; 
})