我回答您的具體問題,而是繼續閱讀,因爲這不是一個應該如何處理創建角的應用程序。
要得到你需要通過$event
局部變量的DOM元素角爲你創建:
<span class='retry-btn' ng-click='retryTask($event)'>Retry</span>
然後,您可以用$event.currentTarget
獲得元素:
$scope.retryTask($event){
var target = $event.currentTarget;
}
較長版本
你不是「在Angular中思考」,所以,請首先閱讀以下SO問題/答案:"Thinking in AngularJS" if I have a jQuery background?"
簡而言之,忘記DOM內部控制器,只能使用ViewModel。
就你而言,你有一個簡單的加載程序,需要在加載時顯示。因此,表示$scope.isLoading
變量,並在任務運行或完成時將其設置爲true
/false
。由視圖模型
.controller("MainCtrl", function($scope, SomeSvc){
// do some async task right away
doTask();
$scope.retryTask = function(){
doTask();
};
function doTask(){
// before start, set to true
$scope.isLoading = true;
SomeSvc.doTask()
.then(function(data){
$scope.data = data; // if needed
})
.finally(function(){
// when finished, set to false
$scope.isLoading = false;
});
}
})
而讓視圖中 「驅動」:然後,您的視圖可以做出相應的反應(與ng-show
/ng-hide
或ng-if
)
<div ng-show="isLoading">loading...</div>
<div ng-hide="isLoading">
{{data}}
</div>
所以,哪裏是什麼問題?爲什麼你用這種方式在角度內使用jQuery?你嘗試解決什麼問題? – Grundy
我想要點擊的元素的當前refrence。 –
http://stackoverflow.com/questions/23107613/angularjs-get-original-element-from-ng-click使用$ event.currentTarget,但使用角度和jQuery這種方式似乎很奇怪 –