JSFiddle - React, Tailwind, and code Playground

HTML

<div ng-app='App'>
    <div ng-controller='Controller'>
        <button ng-click='toggle()'>highlight</button>
        <div ng-show2='car'>Cadillac 凱迪拉克</div>
        <div>BMW 寶馬</div>
        <div ng-show2='car'>Ferrari 法拉利</div>
    </div>
</div>

CSS

.click_style{
    background-color:yellow;
}

JavaScript

//建立一個名稱為App的ng-app
var App = angular.module('App', []);
//App建立一個名稱為Controller的controller
App.controller('Controller', function($scope){
    //新增一個test變數為true
    $scope.car = true;
    //新增一個function,控制test變數
    $scope.toggle = function(){ $scope.car = !$scope.car;  };
});
//建立一個名稱為ngShow2的directive
App.directive('ngShow2', function() {
    return {
        replace: true,
        //restrict可以定義directive是A(屬性)或E(元素)或C(類別)或M(備註),此範例是定義為屬性
        restrict: 'A',
        //link是這個directive 一被執行就做的事情
        //scope和$scope一樣,element 就是你這個 directive 標籤本身物件,attr 就是 標籤內的 屬性
        link: function(scope, element, attr){
            //用$watch去即時監看ngShow2
            scope.$watch(attr.ngShow2, function(value){
               //element.css('background-color', value ? '' : 'yellow');
                if(value){ 
                    //addClass之後,如果沒有remove掉,再加別的class、它會蓋上去
                    element.removeClass( 'click_style');
                }
                else{
                    element.addClass( 'click_style');
                }
            });
        }
    };
});