具有angularjs的动态子域

具有angularjs的动态子域,angularjs,subdomain,Angularjs,Subdomain,我是Angularjs新手,我想添加动态子域,如sub.domain.com。 通过更改sub,我将能够从服务器请求正确的数据。但是,主页仍将保持不变 sub1.domain.com和sub2.domain.com将具有相同的home.tpl.html页面,但返回的数据将特定于域。 其他页面也一样 有什么方法可以做到这一点吗?您需要了解的主要内容是,尤其是。这将返回完整的域,从那里很容易获得子域并使用它 你甚至可以做一个非常简单的服务,你可以把它注入任何地方,以便轻松地访问子域 比如: app.

我是Angularjs新手,我想添加动态子域,如
sub.domain.com
。 通过更改sub,我将能够从服务器请求正确的数据。但是,主页仍将保持不变

sub1.domain.com
sub2.domain.com
将具有相同的
home.tpl.html
页面,但返回的数据将特定于域。
其他页面也一样


有什么方法可以做到这一点吗?

您需要了解的主要内容是,尤其是。这将返回完整的域,从那里很容易获得子域并使用它

你甚至可以做一个非常简单的服务,你可以把它注入任何地方,以便轻松地访问子域

比如:

app.factory('subdomain', ['$location', function ($location) {
    var host = $location.host();
    if (host.indexOf('.') < 0) 
        return null;
    else
        return host.split('.')[0];
}]);

子域由服务器提供服务,而angular则提供哈希/hashbang URL,对子域一无所知

U可以有3个子域,例如:

  • en.example.com(在服务器上手动配置)|
  • de.example.com(在服务器上手动配置)|->example.com
  • it.example.com(在服务器上手动配置)|
它们中的每一个都引用了main example.com,但是您希望通过使用子域来实现某些功能,例如i18n(带角点)


因此,当有人连接到en.example.com(事实上,请求会转到angular应用程序所在的example.com)时,您可以提取angular中的子域(在本例中,请参见上文中的示例)并转换您的angular视图。

为什么不按点拆分并计算host()的元素


希望有帮助

有很多方法可以做到这一点…您的具体问题是什么?我的路由将如何改变,以允许sub1.domain.com正确地引导请求?现在domain.com工作正常,但通过使用sub1.domain.com,我得到了一个页面未找到错误。我不知道,这是一个问题,无论您是如何托管此网站和您的Web服务器。您可能还需要正确设置DNS。这与角度无关。
app.controller('SomeCtrl', ['$scope', 'subdomain', function ($scope, subdomain) {
     // use subdomain same as any other variable
}]);
var host = $location.host();
var parts = host.split('.');
var subdomain = null;

// more than domain.cn, will always return the first
if (parts.length > 2)
  subdomain = parts[0];

return subdomain;