我有一個按鈕,,如example.html所示,它位於ng-repeat
指令內。因此,還有更多喜歡它的人。 如何在調用syncAccount()
時將fa-spin
類添加到子元素i
,然後從pullProfile()
的末尾刪除同一子元素中的類fa-spin
?AngularJS - 將子類添加到子元素
----- example.html的
<md-button class="md-raised md-default" ng-click="syncAccount(account.username)">
<i class="fal fa-sync"></i> Re-sync
</md-button>
----- example.controller.js
$scope.syncAccount = function(username)
{
console.log('syncing ' + username + ' ...')
$scope.pullProfile(username)
}
$scope.pullProfile = function(username)
{
// do stuff
// remove the fa-spin class
}
我一直在使用angular.element().closest()
沒有成功嘗試。例如:
----- example.html的
<md-button class="md-raised md-default" ng-click="syncAccount($event, account.username)">
<i class="fal fa-sync"></i> Re-sync
</md-button>
----- example.controller.js
(更新,以反映溶液通過chiliNUT建議在評論中)
$scope.syncAccount = function($event, username)
{
var spinElement = angular.element($event.currentTarget).find('.fa-sync')
spinElement.addClass('fa-spin')
console.log('syncing ' + username + ' ...')
$scope.pullProfile(spinElement, username)
}
$scope.pullProfile = function(spinElement, username)
{
// do stuff
spinElement.removeClass('fa-spin')
}
旁白:
使用.find('i')
爲.find()
僅由標籤名限於查找沒有工作。在這裏看到:https://docs.angularjs.org/api/ng/function/angular.element
這不是如何'closest'作品。而不是'.closest('i')'try'.find('i')' – chiliNUT
在我的例子中,'.find('i')'沒有返回任何東西。 '.find('。fa-sync')'雖然有效,但效果相同。如果您發佈答案,我會將其標記爲已接受。謝謝。 – Crayons
請不要在Angular中使用基於jQuery的解決方案。這是一個非常糟糕的時尚。 –