Gunakan rute/status yang berbeda untuk setiap subdomain atau nama domain, di AngularJS/ui-router

Aplikasi Angular saya memiliki banyak nama domain dan subdomain berbeda yang diarahkan ke sana. Saya ingin masing-masing mengambil status berbeda dalam perutean saya. Bagaimana saya melakukan ini?

Izinkan saya memberi contoh:

domainname1.com
subdomain.domainname1.com
sub2.domainname1.com 

domain2.com
sub1.domain2.com

SEMUA arahkan ke root aplikasi saya. Rute/negara bagian saya mungkin terlihat seperti ini:

    $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'
            })

Bagaimana cara menambahkan pernyataan "jika" untuk setiap negara bagian, berdasarkan domain atau subdomain?

SEJAUH INI:

Saya telah menemukan beberapa kode di sini untuk mengekstrak subdomain:

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

jadi saya bisa melakukan hal yang sama untuk domain:

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

dan menambahkannya ke pengontrol saya:

    app.controller('SomeCtrl', ['$scope', 'subdomain', function ($scope, subdomain) {
 // use subdomain same as any other variable
}]);

Namun bagaimana cara mengubah status berdasarkan nilai domain dan/atau subdomain?

Terima kasih


person Leon    schedule 31.01.2016    source sumber
comment
Hanya berpikir keras, tetapi alih-alih memiliki status yang berbeda, Anda mungkin hanya memiliki satu status dan kemudian menentukan beberapa parameter seperti domain dan subdomain untuk status tersebut. Kemudian Anda dapat memilih templat yang sesuai menggunakan fungsi templat, seperti yang ditunjukkan dalam jawaban ini. Anda dapat melakukan hal serupa dengan pengontrol, menggunakan controllerProvider.   -  person Sunil D.    schedule 31.01.2016
comment
Ini adalah pemikiran awal saya. Namun, saya mengalami masalah saat ingin menggunakan parameter status sebagai bagian dari url. Misalnya, url lengkapnya mungkin: subdomain.namadomain1.com/namapengguna1234 - ini memungkinkan aplikasi multi-penyewa memiliki sejumlah halaman yang ditentukan pengguna. Statusnya adalah url: '/:usernameParam', ... apakah solusi ini masih berfungsi untuk kasus ini? Aku akan mencobanya nanti...   -  person Leon    schedule 01.02.2016
comment
Di permukaan saya pikir ini bisa berhasil. UI Router sangat kuat, tetapi ketika saya ingin melakukan sesuatu yang ambisius seperti ini, selalu diperlukan sedikit usaha untuk melakukannya dengan benar :)   -  person Sunil D.    schedule 01.02.2016
comment
@Leon jika Anda menemukan solusinya, silakan kirimkan jawabannya, saya terjebak dengan masalah yang sama.   -  person Omkar Gokhale    schedule 15.07.2016
comment
Tidak. Ini adalah salah satu fungsi yang sepertinya tidak dapat saya perbaiki menggunakan router sudut/UI. Tampaknya mungkin tetapi saya tidak bisa membuatnya berhasil   -  person Leon    schedule 17.07.2016