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
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.
Nasıl ya da yeniden işleme sayfanın ta...
AngularJS konumunu kullanarak $yönlend...
AngularJS : Servis sağlayıcı vs vs fab...
Java kullanarak.net.Ateş ve işlemek iç...
Nasıl iPhone için Windows geliştirme m...