0

OnsenUI でいくつかのトグル ボタンを作成しようとしています。トグル状態を ons-button プロパティの button type="" (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-class を切り替えようとしましたが、同じ問題です。ページに最初にレンダリングされると、ボタンは更新されません (そして、ダイジェストの更新で更新されないようです)。

当然、最初はチェックボックスを使用してこれを試しましたが、モバイル デバイスでの 300 ミリ秒のクリック遅延を回避できませんでした。(OnsenUI が Fastclick を使用していることは知っていますが、Android ではまったく機能しないようで、iOS ではチェックボックスがまだ遅いため、トグル ボタンを試していますが、実際に機能する場合はこの方法を好むかもしれません。)

私は何か間違ったことをしていますか?

読んでくれてありがとう。

4

2 に答える 2

1

$scope.boolon thatの値を実際に変更していないようですng-click。あなたがすべきですng-click="bool = !bool"。プランカー: http://plnkr.co/edit/08sgrG57yym82l6WSDrO?p=preview

于 2014-07-11T13:01:35.147 に答える