在我的Angular应用程序中,我定义了一个常量,例如:
var app = angular.module('app', ['ngTagsInput'])
.constant('API', 'https://www.example.com/api/v1')
})();
但是我希望这个API URL依赖于我在上面设置的常量,即:
var WORKING_ON_ENV = "dev";
所以我尝试使用以下方法实现这一点 - 但它不起作用 - 这实际上是否可以使用Angular常量?:
.constant('API', function() {
if (WORKING_ON_ENV == "prod") {
return 'https://www.example.com/api/v1'
} else {
return 'https://www.example.com/api/v2'
}
})
任何建议表示赞赏。
感谢。
答案 0 :(得分:3)
您可以使用三元组:
var app = angular.module('app', ['ngTagsInput'])
.constant('API', (WORKING_ON_ENV == "prod" ? 'https://www.example.com/api/v1' : 'https://www.example.com/api/v2'))
})();
答案 1 :(得分:3)
您可以使用detailed step-by-step guide for developing iOS apps with Azure Notification Hubs
.constant('API',
(function() {
if (WORKING_ON_ENV == "prod") {
return 'https://www.example.com/api/v1'
} else {
return 'https://www.example.com/api/v2'
}
//Immediately invoke it
})()
)
答案 2 :(得分:0)
您的代码将API常量初始化为函数。你想要的是将它初始化为该函数返回的值:
function getApi() {
if (WORKING_ON_ENV == "prod") {
return 'https://www.example.com/api/v1'
} else {
return 'https://www.example.com/api/v2'
}
}
.constant('API', getApi());
但可以这样说明:
.constant('API', WORKING_ON_ENV == "prod" ? 'https://www.example.com/api/v1' : 'https://www.example.com/api/v2');