2016-03-23 48 views
2

私は、これがモーダルためのHTMLテンプレートで、角度のためのUIのブートストラップでモーダルダイアログを作成しています:

<div class="modal-content"> 
    <div class="modal-body"> 
     ... 
    </div> 
    <div class="modal-footer"> 
     <button class="btn btn-primary" ng-click="save();">Save</button> 
    </div> 
</div> 

そして、これはモーダル指令するためのコントローラである:

app.controller('modalCtrl', [ 
    '$scope', function ($scope) { 
     return $scope.save = function() { 
      ... 
     }; 
    } 
]); 

これでそれを呼び出す:

$uibModal.open({ 
    templateUrl: '...', 
    controller: 'modalCtrl' 
}); 

を保存ボタンをクリックすると、私はボタンSTを変更する必要があります基本的にこのようなもので、他のサードパーティのライブラリを使用してyling /アニメーション:

button.loading(); 

これを行うための理想的な方法は何ですか?私は多くの人がディレクティブがDOM操作を行う方法だと言うことを知っていますが、ここでどのように行うことができますか?要素に特定のクラスを追加

HTML::

答えて

1

私はあなたがこれを試みることができると思います

<button class="btn btn-primary thebutton" ng-click="save();">Save</button> 

JSは、要素を取得:

$scope.save = function() { 
    angular.element('thebutton').loading(); 
}; 

あなたはディレクティブを使用する場合:

HTML:

<button thebutton class="btn btn-primary" ng-click="save();">Save</button> 

JS:

.directive('thebutton', function() { 
    return { 
     link: function(scope, element, attrs) { 
      element.on('click', function() { 
       element.loading(); 
      }); 
     } 
    }; 
}); 
+0

おかげで、これはコントローラ内のDOM操作としてカウントされますか?多くの人々は私がそれを避けようとしている理由でこのアプローチを推奨していません。 – kecebongsoft

+0

私もあなたに指示の答えを与えることができます、分私を与える –