2013-04-21 67 views
5

可以說我有按鈕:如何在javascript中通過id得到angularjs模擬的元素?

<button type="submit" 
     value="Send" 
     id="btnStoreToDB" 
     class="btn btn-primary start"    
     ng-click="storeDB()" 
     ng-disabled="!storeDB_button_state" 
     > 
       <i class="icon-white icon-share-alt"></i> 
       <span>Store to DB</span> 
      </button> 

enter image description here

在JS得到這個按鈕我只是做var btn = $('#btnStoreToDB');,現在可以用這個按鈕來播放。所以我可以通過idclass

但是我怎樣才能得到這個元素angularjs

我想在加載過程中添加微調按鈕,如顯示here (Fiddle)

由於我所有的項目我開始只使用angulajs我試圖明智地做到這一點,不喜歡我怎麼知道。

我想補充:ng-model="btnStoreToDB",並使用此:

if($scope.btnStoreToDB){ 
     var spinner = new Spinner().spin(); 
     $scope.btnStoreToDB.appendChild(spinner.el); 
    } 

$scope.btnStartUpload是不確定的。假設有其他方法來獲取這個按鈕。

請幫助

+0

您應該在jQuery中說過,您只需執行'$('#....')'.JavaScript> jQuery ;-) – TheHippo 2013-04-21 19:48:30

回答

6

這是一個很好的問題,一個很常見的情況。

這樣的角度的方法是上還是在按鈕中使用ng-showng-hideng-class

一個想法可能是使用ng-class像這樣:

<button ng-class="{ useSpinner: btnStoreToDB }">...</button> 

這將類useSpinner添加到按鈕時btnStoreToDB是真實的,並刪除該類時btnStoreToDB是假的。

另一種方法是使用ng-show這樣的:

<button ...> 
    <i class="icon-white icon-share-alt"></i> 
    <span>Store to DB</span> 
    <div class="spinner" ng-show="btnStoreToDb">...</div> 
</button> 

現在您的視圖和控制器分開,你正在做的事情的角路。

3
angular.element("#btnStoreToDB"); 

但這裏是更多的 「角」 的方式

JS

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 
    $scope.loading = false; 

    $scope.send = function(){ 
    $scope.loading = true; 
    setTimeout(function(){ 
     alert('finished'); 
     $scope.$apply($scope.loading = false); 
    }, 2000); 

    }; 
}); 

HTML

<button ng-click="send()"> 
     <img ng-show="loading" src="http://farmville-2.com/wp-content/plugins/farmvilleajpl/img/loadingbig.gif" width='10'> 
     Send!  
</button> 

p.s.從對自定義源

p.p.s圖片我個人經常使用Twitter的引導,有一個方法來顯示紡紗容易。像<i class="icon-spin icon-spinner" ng-show="loading"></i>

See on Plunker

+1

您應該添加更多解釋,以解決問題以及原因。這將會得到更好的答案。 – 2013-04-21 19:57:28

+0

-1,我沒有興趣使用id(請參閱問題)。你的例子展示瞭如何向angular env添加元素。對不起 – 2013-04-21 20:00:37

+0

你問我怎樣才能像JS一樣獲取元素。我給你答案。謝謝 – Maksym 2013-04-21 20:07:23

相關問題