Javascript AngularJS+;样式不应用于字段
我正在尝试对api响应上的消息应用颜色 例如: angularJS:Javascript AngularJS+;样式不应用于字段,javascript,html,jquery,angularjs,Javascript,Html,Jquery,Angularjs,我正在尝试对api响应上的消息应用颜色 例如: angularJS: .then(function (response) { angular.element(document.getElementById("msg")).css('color', '#00662f'); $scope.Messages = response.data; 和我的HTML: <div id="msg" ng-repeat="msg
.then(function (response) {
angular.element(document.getElementById("msg")).css('color', '#00662f');
$scope.Messages = response.data;
和我的HTML:
<div id="msg" ng-repeat="msg in Messages">{{msg}}</div>
似乎不适用于邮件的颜色
你能看出我做错了什么吗
谢谢你的帮助
伊拉斯莫
更新-我的解决方案
添加了一个布尔值
$scope.IsColor == true;
根据API响应将其设置为false/true:
if (response.data.indexOf("sucessfully added") !== -1) {
$scope.Messages = response.data;
$scope.IsColor = true;
angular.element("#msg").focus()
return true;
}
else {
$scope.Messages = response.data;
$scope.IsColor = false;
angular.element("#msg").focus()
return false;
}
然后在HTML中
<div id="msg" ng-repeat="msg in Messages" ng-class="$scope.IsColor ? 'text-green' : 'text-red'">{{msg}}</div>
{{msg}
试试这个
angular.element(document.querySelector("msg")).css('color', '#00662f');
您应该通过
ng类
或ng样式
来完成。有关如何更新样式,请参见stackblitz:
在样式旁边的HTML中:
<div id="msg" ng-repeat="msg in Messages">{{msg}}</div>
{{msg}
您应该将id替换为class,使用id来标识元素通常被认为有点不好,因为id是全局的,如果我碰巧发生冲突,它会立即出错。让我试试。非常感谢。它不起作用。也许我应该使用一个布尔范围变量,然后在html中检查它的值?你不应该使用angular.element来实现它。这真是一次糟糕的尝试。你好@huan feng,所以我需要做的就是用类来改变id。你看到stackblitz的例子了吗?实际上,代码中有几个问题。1.您不应该使用id进行样式设置。2.应该避免使用angular.element之类的方法来更改元素的颜色。
<div id="msg" ng-repeat="msg in Messages">{{msg}}</div>