【发布时间】:2015-10-01 12:34:59
【问题描述】:
我有本地和在线托管的应用程序。 我有很多 api 调用,我们需要更改 url 的前缀。 我已经设置了两个 url 的值 url,一个是本地需要的,一个是在线的。 所以我有:
//.value('urlPath', '')
.value('urlPath', 'http://online-website:8888/')
在此配置中,有注释一个,第二个没有。 我的问题是,如何动态更改 urlPath,因此开发人员无需在每次部署到服务器时都评论和取消评论。 我知道我可以使用 $location 服务,如果没有,我可以使用 javascript raw 函数来确定网站所在的主机。 所以我可以做出这样的条件:
var host = $location.host();
if ( host.indexOf("online-website") > -1)
//set value to online-website;
else
//set value to localhost
我假设我可以在开始时以某种方式使用这个代码 sn-p,就像在 .run 模块方法中一样。 但是如何通过有条件地设置 Angular 的 Value 来实现呢? 我的问题是,如果 value 有方法来动态设置它的值,如何引用它?或者是否有其他解决方案,除了创建服务或继承控制器。 我有很多使用值对象的控制器,所以最好的解决方案是使用值。
另外,如果不可能的话,value和constant有什么区别?
我想在运行方法中动态设置它。它是在定义值之后定义的。 我通过以下方式动态设置值:
var host = $location.host();
console.log('host is: ',host);
if ( host.indexOf("website-online") > -1)
{urlPath = '';console.log('1');}
else
{urlPath = 'http://website-online:8888/';console.log('2',urlPath);}
在 localhost 控制台日志 2 和网站在线,但 api 调用将转到 localhost。所以价值没有改变。 什么时候创建的,如何动态改变值,什么时候动态改变,所以在视图加载时在每个控制器中注入值就可以了?
【问题讨论】: