У меня есть следующий код контроллера:
applicationControllers.controller('PostsController', ['$scope', '$http', function
($scope, $http) {
var page = 1;
$scope.init = function() {
this.loadPage(page);
}
$scope.nextPage = function() {
page++;
this.loadPage(page);
}
$scope.previousPage = function() {
page--;
if (page <= 0) { page = 1 }
this.loadPage(page);
}
$scope.filterByProvince = function(provinceName) {
console.log(provinceName);
}
$scope.loadPage = function(page) {
$http.get('/posts.json?page=' + page).success(function(data) {
$scope.posts = data;
});
}
$scope.init();
}]);
Проблема заключается в том, что при использовании директивы ng-click для filterByProvince('test') кажется, что также вызывается функция инициализации. Я хочу избежать такого поведения.
Любая помощь?
init
будет вызываться при первой инициализации контроллера, то есть при первой ссылке на нее вng-controller
или при загрузке маршрута, который ее использует. Я не вижу другого места, где он мог бы быть вызван, и уж точно не при вызовеloadPage
, если только содержимое, загруженноеloadPage
, не содержит директивуng-controller
. Не могли бы вы дать более подробную информацию о порядке, в котором вы видите, что происходит, и где и как вы используете этот контроллер? - person Joe White   schedule 13.07.2014ngClick
на<a>
. - person gkalpak   schedule 13.07.2014<a>
имеетhref
из#
. - person gkalpak   schedule 14.07.2014