将AngularJS(1.4)与ng-repeat一起使用,我在我的网站上动态地放置了几个按钮 - 每个按钮都有一个唯一的ID。通过单击按钮,将执行REST API调用。根据REST调用的结果,我想更改相应按钮的字体颜色。这就是我到目前为止所提出的。
HTML(摘录:嵌套在ng-repeat(somecontainer中的项目)指令):
<button id="button_1" ng-click="runApiCall(item._id)">Button 1</button>
<button id="button_2" ng-click="runApiCall(item._id)">Button 2</button>
<button id="button_3" ng-click="runApiCall(item._id)">Button 3</button>
使用Javascript:
$scope.runApiCall = function(id){
console.log(id); //correct id incoming!
$http({
method: 'POST',
url: '/someurl/',
data: {'myID': id}
})
.success(function(data){
if(data.status == "whatever"){
console.log('yap, should be working!');
angular.element('#button_'+id).css("color:black!important");
}
})
.error(function(){
//foo
});
};
我只想要一个按钮来改变它的字体颜色,而不是全部。因此,如果我单击按钮2,那么我只想更改按钮2的字体颜色,这就是为什么我为每个按钮引入唯一ID以便能够在运行时清楚地解决它们的原因。
给出正确的按钮ID,发送API调用,data.status == whatever
但我的按钮的字体颜色,无论哪一个,都不会改变。为什么?