Мое приложение Angular имеет много разных доменных имен и поддоменов, указывающих на него. Я хотел бы, чтобы каждый из них занимал свое состояние в моей маршрутизации. Как мне это сделать?
Позвольте мне привести пример:
domainname1.com
subdomain.domainname1.com
sub2.domainname1.com
domain2.com
sub1.domain2.com
ВСЕ указывают на корень моего приложения. Мои маршруты/состояния могут выглядеть примерно так:
$stateProvider
.state('Dom1Sub0', {
url: '/',
templateUrl: 'views/s0View.html',
controller: 'domain1Controller as user'
})
.state('Dom1Sub1', {
url: '/',
templateUrl: 'views/s1View.html',
controller: 'domain1Controller as user'
})
.state('Dom1Sub2', {
url: '/',
templateUrl: 'views/s2View.html',
controller: 'domainController as user'
})
.state('Dom2Sub0', {
url: '/',
templateUrl: 'views/s0View.html',
controller: 'domain2Controller as user'
})
.state('Dom1Sub1', {
url: '/',
templateUrl: 'views/s1View.html',
controller: 'domain2Controller as user'
})
Как я могу добавить оператор «если» для каждого состояния на основе домена или поддомена?
УЖЕ:
Я нашел здесь код для извлечения поддомена:
app.factory('subdomain', ['$location', function ($location) {
var host = $location.host();
if (host.indexOf('.') < 0)
return null;
else
return host.split('.')[0];
}]);
поэтому я могу сделать то же самое для домена:
app.factory('domain', ['$location', function ($location) {
var host = $location.host();
if (host.indexOf('.') < 0)
return host.split('.')[0];
else
return host.split('.')[1];
}]);
и добавьте их в мой контроллер:
app.controller('SomeCtrl', ['$scope', 'subdomain', function ($scope, subdomain) {
// use subdomain same as any other variable
}]);
Но как изменить состояние на основе значения домена и/или поддомена?
Спасибо
domain
иsubdomain
для состояния. Затем вы можете выбрать соответствующий шаблон с помощью функции шаблона, как показано в этом ответе. Вы можете сделать что-то подобное с контроллерами, используя controllerProvider а>. - person Sunil D.   schedule 31.01.2016