переменная объема не изменяется - angularjs

0

Переменная 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" вместо увеличения. Надеюсь, это поможет понять проблему.

Теги:

2 ответа

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);
    } 
});
  • 0
    Я бы использовал ваш метод, но у меня есть другие кнопки, такие как first, prev и last, а также next. Итак, чтобы минимизировать код, я хотел увеличить его в самом HTML. Этот документ говорит так, но не работает - docs.angularjs.org/api/ng/directive/ngClick. Пожалуйста, также проверьте мою скрипку
1

Вот рабочий пример, на который вы можете обратиться плункер.

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

  • 0
    Когда я выбираю 1 в раскрывающемся списке и нажимаю «Далее», значение в предупреждении должно быть равно 2. А также значение в раскрывающемся списке должно измениться на 2. Это то, что я пытаюсь сделать с моим кодом. В твоем примере это не так.
  • 0
    вам нужно сделать что-то вроде этого визита по другой ссылке.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню