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

  • Blendtec

    Blendtec

    30 EKİM 2006
  • fireflame65

    fireflame65

    27 Mart 2007
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012