Свойство Тип кнопки переключения с OnsenUI/AngularJS

Я пытаюсь сделать некоторые кнопки переключения с OnsenUI. Я просто хочу, чтобы отображаемые состояния отображались кнопкой свойства кнопки ons = "" (normal) или type = "quiet".

Логика кажется довольно простой, plunkr находится здесь: http://plnkr.co/edit/25Y9KSfSv2Ket5gHzcjI?p=preview, с html ниже:

<ons-button type="{{buttonType()}}" ng-click="!bool">
 button type {{buttonType()}}
</ons-button>

И контроллер:

app.controller('MyController', function($scope) {

 $scope.bool = false;

 $scope.buttonType = function() {
 if ($scope.bool) {
 return ''; //normal button
 } else {
 return 'quiet'; //quiet button
 }
 } 

});

Я попытался переключиться с ng-классом, однако, с той же проблемой; кнопка не обновляется после первоначальной визуализации на странице (и, по-видимому, не обновляется с помощью каких-либо обновлений дайджеста).

Естественно, я сначала пробовал это с помощью флажков, однако я не мог избежать задержки на 300 мс на мобильных устройствах. (Я знаю, что OnsenUI использует Fastclick, но он вообще ничего не делает на Android, а на iOS флажки все еще медленны, поэтому я пытаюсь переключать кнопки и на самом деле может предпочесть этот метод, если он будет работать.)

Я делаю что-то неправильно?

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

2 ответа

Похоже, вы на самом деле не изменяете значение $scope.bool на этом ng-click. Вы должны сделать ng-click="bool = !bool". Plunker: http://plnkr.co/edit/08sgrG57yym82l6WSDrO?p=preview


Очевидно, что это было вне функциональных возможностей настраиваемой кнопки.

Я использовал стандартную кнопку html с двумя классами css; похожий на верхний слой и верхний слой - тихий, и используется ng-класс для переключения между ними.

licensed under cc by-sa 3.0 with attribution.