แอปพลิเคชัน My 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'
})
ฉันจะเพิ่มคำสั่ง "if" สำหรับแต่ละรัฐโดยอิงตามโดเมนหรือโดเมนย่อยได้อย่างไร
จนถึงตอนนี้:
ฉันพบโค้ดบางส่วนที่นี่เพื่อแยกโดเมนย่อย:
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