2015-11-24 1 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

i.e 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; 
})