Açısal HTTP dönüştürmek.bir hizmet sağlar
HTTP.get
* *10 services.js
bir hizmet için benim işlevi bir Açısal dönüştürmek için çalışıyorum.
Tüm bulduğum örnekler hizmetini uygulamak için çakışan yolları ve isimlerini seçtikleri kafa karıştırıcı. Ayrıca, hizmetler için gerçek açısal belgelerine henüz bir farklı örnek daha sözdizimi kullanır. Bu süper basit olduğunu biliyorum, ama lütfen bana yardım et.
*, , *, *15controllers.js
*14 12**ben.
app.js
angular.module('MyApp', []).
config(['$routeProvider', function($routeProvider)
{
$routeProvider.
when('/bookslist', {templateUrl: 'partials/bookslist.html', controller: BooksListCtrl}).
otherwise({redirectTo: '/bookslist'});
}
]);
controllers.js
function BooksListCtrl($scope,$http) {
$http.get('books.php?action=query').success(function(data) {
$scope.books = data;
});
$scope.orderProp = 'author';
}
CEVAP
Modüller ve bağımlılık enjeksiyon düşünün.
Bu yüzden, hadi bu üç dosya var
<script src="controllers.js"></script>
<script src="services.js"></script>
<script src="app.js"></script>
Üç modül gerekir
1. Ana Uygulama Modülü
angular.module('MyApp', ['controllers', 'services'])
.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/bookslist', {
templateUrl: 'partials/bookslist.html',
controller: "BooksListCtrl"
})
.otherwise({redirectTo: '/bookslist'});
}]);
Diğer iki modülü ana modülü içine enjekte edilir, onların bileşenleri tüm uygulama için kullanılabilir dikkat edin.
2. Kontrolörler Modülü
Kumandanız genel bir işlevdir şu anda, denetleyicileri bir modüle eklemek isteyebilirsiniz
angular.module('controllers',[])
.controller('BooksListCtrl', ['$scope', 'Books', function($scope, Books){
Books.get(function(data){
$scope.books = data;
});
$scope.orderProp = 'author';
}]);
Books
denetleyici işleve geçirilen ve enjekte edilen hizmetleri modülü tarafından kullanılabiliranauygulama modülü.
3. Hizmetleri Modülü
Burada Books
servis tanımlayın.
angular.module('services', [])
.factory('Books', ['$http', function($http){
return{
get: function(callback){
$http.get('books.json').success(function(data) {
// prepare data here
callback(data);
});
}
};
}]);
Hizmetleri kayıt birden çok yolu vardır.
- hizmet: yapıcı işlevi bir sınıf diyebiliriz) geçer ve sınıfının bir örneğini döndürür
- sağlayıcı: bu yana en esnek ve yapılandırılabilir sana enjektör hizmeti başlatmasını çağrı işlevlerine erişim sağlar
- fabrika: enjektör hizmeti. başlatmasını çağıran bir işlev geçirilir
factory
kullanarak tercihim fonksiyonu ve sadece bir nesne döndürür. Yukarıdaki örnekte biz sadece geri bir başarı geçirilen get
bir işlevi olan bir nesne döndürür. Bu bir hata işlevi de geçmek değiştirebilirsin.
EditBir yönerge bir hizmet ekleme nasıl yorum @yair talebine cevap burada.
4. Direktifleri Modülü
Ben her zamanki desen izleyin, js dosyası eklemek ilk
<script src="directives.js"></script>
Daha sonra yeni bir modül tanımla falan, bu durumda bir register yönergesi
angular.module('directives',[])
.directive('dir', ['Books', function(Books){
return{
restrict: 'E',
template: "dir directive, service: {{name}}",
link:function(scope, element, attrs){
scope.name = Books.name;
}
};
}]);
Bu enjekteDirektifibu modülüana modülapp.js
.
angular.module('MyApp', ['controllers', 'services', 'directives'])
Farklı bir strateji takip ve içine bir modül enjekte etmek isteyebilirsinizdirektifleri modülü
Bu sözdizimi dikkat edinbağımlılık satır içi ek açıklamahemen hemen her şey için aynıdır. Direktif aynı Kitap hizmeti enjekte edilir.
Plunker Güncellendi: http://plnkr.co/edit/mveUM6YJNKIQTbIpJHco?p=preview
Etkinleştir ASP.NET ASMX HTTP POST / G...
Açısal $http isteği sırasında Spinner ...
jquery $.ajax $http açısal...
Bu hizmet bitiş noktası, HTTP protokol...
Açısal $http Önbelleğe alma sorunu YAN...