Я пишу блог AngularJs. Я новичок в этом. Я создаю службу BlogController и BlogData. BlogController использует BlogData. BlogData использует $ http и получает данные с сервера. мой контроллер как это;Angularjs получить данные в директиве
barbarapp.controller('BlogController', function ($scope, blogData) {
$scope.blogPosts = blogData.getBlogPosts(0);
});
blogДетальное обслуживание;
barbarapp.factory('blogData', function ($http, $q) {
return {
getBlogPosts: function (pageNumber) {
debugger;
var deferred = $q.defer();
$http({
url: 'Blog/GetBlogPosts',
method: 'POST',
data: { 'pageNumber': pageNumber }
}).success(function (response) {
deferred.resolve(response.posts);
});
return deferred.promise;
}
};
});
все хорошо. И я создаю директиву для pageniation (директива использует библиотеку разбиения на jquery). так называемая директива разбиения на страницы;
barbarapp.directive('createPagination', function (blogData, $q) {
return function (scope, element) {
$(element).pagination({
items: scope.postCount,
itemsOnPage: scope.itemsOnPage,
cssStyle: "light-theme",
onPageClick: function() {
var posts = blogData.getBlogPosts(this.currentPage);
scope.blogPosts = posts;
}
});
};
});
директива отлично работает, но сообщения на onPageClick не определены. почему это не работает?
проблема может быть 'this.currentPage'. Я не вижу, где это –
@baris Где находится код 'onPageClick' ??? – zsong
Я удалил свой ответ о обещаниях, так как ganaraj и Khanh TO указали, что предпосылка ответа была фактически ложной, чтобы избежать путаницы. –