SORU
9 HAZİRAN 2013, Pazar


AngularJS Servis Çağrı için Göreli bir Yol kullanarak

Bir test sunucusu için konuşlandırılmış kadar gayet iyi çalışıyordu aşağıdaki kodu var:

$scope.getUserList = function (userName) {
    $http({
        method: "get",
        url: "GetUserList",
        params: { userName: userName }
    }).
        success(function (data) {
            $scope.users = data;
        }).
        error(function () {
            alert("Error getting users.");

Bu sorun, bir sanal dizin için konuşlandırılmış ve çağrı aşağıda sunucu kökünden GetUserList vurmaya çalışıyor. Bu mantıklı, ve bunu düzeltmek için bir kaç yolu biliyorum.

Bilmek istediğim şey budoğruyol taşınabilir ve Açısal olarak sürdürülebilir bir şekilde hizmet URL başvurusu için.

CEVAP
9 HAZİRAN 2013, Pazar


Kafasına HTML base etiketi kullanarak, ve tüm yollar bu göreli kodlama öneririm. Örneğin ASP.NET,, Mayıs veya sitenin kök yolu olan uygulama, temel bir başvuru yapabilirsiniz, base etiketini kullanarak yardımcı olur. Bonus: diğer her varlık için çalışıyor.

Bu gibi temel yolu vardır:

<base href="/application_root/" />

...ve sonra da bağlantılar "foo/bar.html" aslında /application_root/foo/bar.html olacak gibi.

Benim kullanmak istediğim başka bir yaklaşım başlığındaki adlı bağlantılar koymak. Genellikle tek bir yerde API bir kök var ve Direktif bir şablon başka bir yerde kök. Kafasından, sonra bu gibi bazı etiketler ekleyeceğim:

<link id="linkApiRoot" href="/application_root/api/"/>
<link id="linkTemplateRoot" href="/application_root/Content/Templates/"/>

... ve link href almak ve hizmetleri ve direktifleri açığa çıkarmak için modülü bulunur dolar çok gibi:

angular.module("app.services", [])
    .config(["$provide", function ($provide) {
        $provide.value("apiRoot", $("#linkApiRoot").attr("href"));
    }]);

... ve sonra bu gibi bir hizmet için enjekte:

angular.module("app.services").factory("myAdminSvc", ["apiRoot", function (apiRoot) {
    var apiAdminRoot = apiRoot   "admin/";
    ...

Benim düşüncem sadece. Uygulamanız için en az karmaşık olanı yap.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • midomansour

    midomansour

    19 EYLÜL 2009
  • New Scientist

    New Scientis

    27 Kasım 2006