ng-disabled не работает с кнопками начальной загрузки

5

Я использую bootstrap.js вместе с angular js, мой код следующий -

//few lines from controller
$scope.isWaiting = true;
$scope.promise = $http.get("voluumHandler.php?q=campaigns&filter=traffic-source&filterVal=" + traffic + "&from=" + from + "&to=" + to + "&tz=" + tz).success(function(response){        
        $scope.campaigns = response.rows;
        console.log(response.rows);
        $scope.isWaiting = false;
    }).error(function(response){
        alert(response);
        $scope.isWaiting = false;
    });

Здесь isWaiting используется для отключения и включения кнопки.

<!--HTML -->
<div class="col-md-3">
        <button class="btn btn-warning" ng-disabled="{{isWaiting}}">Report</button>
    </div>

Вывод HTML, созданный до завершения загрузки ajax

<button class="btn btn-warning" ng-disabled="true" disabled="disabled">Report</button>

И после завершения загрузки ajax

<button class="btn btn-warning" ng-disabled="false" disabled="disabled">Report</button>

И кнопка по-прежнему отключена. Я не уверен, почему это происходит, я видел пару вопросов, на которые здесь ответил, чтобы сделать это только.

Спасибо заранее.

2 ответа

9
Лучший ответ

Если вы используете ng-disabled, должно использоваться выражение, которое возвращает правдивое значение. Примером выражения является isWaiting. {{isWaiting}} вместо этого выведет выражение. Вместо этого используйте ng-disabled="isWaiting".

<button class="btn btn-warning" ng-disabled="isWaiting">Report</button>

Документация ngDisabled

Документация выражений

  • 0
    да просто не разобрался.
  • 0
    @WayneEllery Но почему, хотя?
Показать ещё 3 комментария
7

Вам нужно указать выражение на ng-disabled, вместо этого вы указываете строку ( "true" / "false" ), которая всегда правша, а кнопка всегда отключен.

isWaiting → выражение

{{isWaiting}} → значение выражения

В вашем случае:

ng-disabled="isWaiting"

Ещё вопросы

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