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

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • IGN

    IGN

    19 EYLÜL 2006
  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006