搜尋

首頁  >  問答  >  主體

angular.js - angular給多個button綁定同一個事件


想用angular 給這幾個button 綁定同一個事件。
但是不想用這樣的方法

漂亮男人漂亮男人2744 天前752

全部回覆(4)我來回復

  • 世界只因有你

    世界只因有你2017-05-15 17:14:48

    在外層的p綁定ng-click,把angular自帶的$event物件傳入。

    <p ng-click="changeMode($event);">
        <button class="btn btn-primary btn-sm">111</button>
        <button class="btn btn-primary btn-sm">222</button>
        <button class="btn btn-primary btn-sm">333</button>
        <button class="btn btn-primary btn-sm">444</button>
    </p>
    

    controller裡面接收$event,在$event裡可以使用target物件判斷點擊的是哪個按鈕

    $scope.changeMode = function($event){
        $event.target
    };

    ps:有兩點建議:
    1、少年,這個跟事件委託的原理是一樣的,js基礎功不行啊,不要一味地追求什麼新框架,好好補補基礎吧。
    2、少年,養成良好的程式設計習慣,按鈕就寫button標籤,不要span。雖然bootstrap在樣式上幫你都處理好了,但這是一個很差的程式設計習慣。

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:14:48

    使用 uib-btn-radio
    http://angular-ui.github.io/b...

    回覆
    0
  • 阿神

    阿神2017-05-15 17:14:48

    NG內建mini版本的jq.

    如果不用那種方案,你可以把這一對程式碼寫成一個循環。這段冗餘程式碼,你可以看出來對應關係
    可以定義一個物件字面量:

    $scope.types = {
      'primary':'全部时间',
      'success':'最近3天',
      'info':'最近一周',
      'warning':'最近一月',
      'danger':'最近半年'
    }
    
    <span ng-repeat="(cla,txt) in types" class="btn btn-sm btn-{{cla}}" ng-click="changeMode()">{{txt}}</span>

    回覆
    0
  • PHPz

    PHPz2017-05-15 17:14:48

    你的需求是什麼?

    回覆
    0
  • 取消回覆