Переменная scope SelectedPage
не обновляется. Существует ul li
для разбивки на страницы, у которой есть раскрывающийся список, а затем следующая кнопка. Пользователь может перейти на страницу либо нажав кнопку, либо выбрав опцию в списке. Когда я нажимаю "Далее" или выбираю 2 в раскрывающемся $scope.SelectedPage
, я ожидаю значение $scope.SelectedPage
чтобы изменить на 2. Но он всегда остается 1.
HTML:
<ul>
<li>
<select ng-model="SelectedPage" ng-change="ShowPageResult()">
<option value="1">1</option>
<option value="2">2</option>
</select>
</li>
<li ng-click="SelectedPage = SelectedPage + 1;ShowPageResult();"><a href=" #">Next</a></li>
</ul>
Ctrl.js
$scope.ShowPageResult = function () {
console.log($scope.SelectedPage); //always prints 1
}
EDIT http://jsfiddle.net/g8pLhf79/ После загрузки страницы нажмите "Далее", нет. приращения. Теперь выберите значение в раскрывающемся списке и нажмите дальше. Теперь он добавляет "1" вместо увеличения. Надеюсь, это поможет понять проблему.
Здесь мы идем (вторая попытка): http://jsfiddle.net/g8pLhf79/11/
Я сделал минимальные изменения, чтобы код работал на вашем пути, в общем, Angular - это разделение View from Model/Controller, поэтому вам рекомендуется оставить логику отделенной от представления. Но так или иначе, это так, как вы этого хотите:
<div ng-app="app" ng-controller="ctrl">
<ul>
<li>
<select ng-model="SelectedPage" ng-change="ShowPageResult();">
<option value="1">1</option>
<option value="2">2</option>
</select>
</li>
<li ng-click="SelectedPage = (SelectedPage * 1+1);ShowPageResult();"><a href=" #">Next</a>
</li>
<li>Selected Page : {{SelectedPage}}</li>
</ul>
</div>
контроллер:
var app = angular.module("app", []);
app.controller("ctrl", function ($scope) {
$scope.SelectedPage = 1;
$scope.ShowPageResult = function () {
console.log($scope.SelectedPage);
}
});
Вот рабочий пример, на который вы можете обратиться плункер.
http://plnkr.co/edit/wOXWXvPZw9AYrqyy486h?p=preview
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.arr = ["0","1"];
$scope.ShowPageResult = function () {
alert($scope.SelectedPage); //always prints 1
}
});
PLZ посетить этот по вашему требованию. http://plnkr.co/edit/wOXWXvPZw9AYrqyy486h?p=preview