如何在Angularjs中动态更改背景颜色

大象

我有一个设置有2个正在查询的文件的轮询程序。当发现新数据时,我正在尝试在视图中设置文本背景的颜色,但这种情况没有发生。

如果有人可以解决这个问题,那就太好了,我也欢迎您提出改善代码结构的建议。

服务:

function Poller($http, $timeout) {

var projectcache = { response: [], calls: 0 };
var msgcache = { response: [], calls: 0 };
var newdata = false;
var msgdata = false;
var msgcolor = {};
var projectcolor = {};

var poller = function () {
  $timeout(poller, 10000);
  console.log("Begin Poller!");
   $http.get('http://localhost/app/controllers/php/getProjects.php')
   .then(function(r) {
     if (r.data.projects.length > projectcache.response.length) {
      newdata = true;
      projectcolor = 'green';
     } else {
      newdata = false;
      projectcolor = 'green';
     };
     angular.copy(r.data.projects, projectcache.response);
     console.log("New Data Found: " + newdata);
   });
   $http.get('http://localhost/app/controllers/php/getMessages.php')
   .then(function(m) {
     if (m.data.messages.length > msgcache.response.length) {
      msgdata = true;
      msgcolor = 'green';
     } else {
      msgdata = false;
      msgcolor = 'green';
     };
     angular.copy(m.data.messages, msgcache.response);
     console.log("New Msg Found: " + msgdata);
   });
};

poller();

return {
  projects: projectcache.response,
  messages: msgcache.response,
  newdata: newdata,
  msgdata: msgdata,
  msgcolor: msgcolor,
  projectcolor: projectcolor
};
};

看法:

<li ng-class="{active: selectTab=='inbox'}" style="background-color:{{msgcolor}};" ng-click="selectTab='inbox'">Inbox</li>
<li ng-class="{active: selectTab=='projects'}" style="background-color:{{projectcolor}};" ng-click="selectTab='projects'">Projects</li>

控制器:

app.controller("taskbarController", ['$scope', 'authData', '$location', 'projectsModal', 'sendMessageModal', 'Poller',
function ($scope, authData, $location, projectsModal, sendMessageModal, Poller) {

$scope.msgcolor = Poller.msgcolor;
$scope.projectcolor = Poller.projectcolor;
}]);
悬崖

我的第一个想法是为此使用ng-class。我看到您已经具有ng类来处理“活动”类的显示。

如果您想尝试这种方法,我将:1.为您要更改的每种状态/颜色创建css clase。(可以在外部CSS文件中或在页面开头创建的标记之间执行此操作。

.successBackground {
background-color:green;
}

.errorBackground {
background-color:red;
}
  1. 修改您的ng-class属性。在这里,我假设成功意味着msgdata = true,而错误意味着msgdata = false

当前HTML:

<li ng-class="{active: selectTab=='inbox'}" style="background-color:{{msgcolor}};" ng-click="selectTab='inbox'">Inbox</li>
<li ng-class="{active: selectTab=='projects'}" style="background-color:{{projectcolor}};" ng-click="selectTab='projects'">Projects</li>

更新的html:

<li ng-class="{active: selectTab=='inbox', successBackground:msgdata===true, errorBackground:msgdata===false}" ng-click="selectTab='inbox'">Inbox</li>
<li ng-class="{active: selectTab=='projects',successBackground:msgdata===true, errorBackground:msgdata===false}" ng-click="selectTab='projects'">Projects</li>

现在,当您更新msgdata时,会根据最新的msgdata值自动更新successBackground和errorBackground。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在swiftui中动态更改文本背景颜色?

来自分类Dev

如何在 React 中动态更改正文背景颜色?

来自分类Dev

如何在Wordpress中更改背景颜色

来自分类Dev

如何在ggvis中更改背景颜色?

来自分类Dev

如何在JavaScript中更改背景颜色?

来自分类Dev

如何在JS中更改背景颜色?

来自分类Dev

如何在 Angular2 中动态更改十六进制背景颜色?

来自分类Dev

如何在AngularJS中动态更改表格单元格颜色

来自分类Dev

如何在angularjs中动态更改模板

来自分类Dev

如何在ASCX文件中动态设置背景颜色?

来自分类Dev

如何在IOS中动态设置背景颜色?

来自分类Dev

如何在Winforms网格中的矩形中更改背景颜色?

来自分类Dev

如何在 iOS 中的 webview 中更改按钮的背景颜色

来自分类Dev

如何动态更改标签背景颜色?

来自分类Dev

如何动态更改JFrame的背景颜色?

来自分类Dev

如何动态更改TabHost背景的shapedrawable颜色?

来自分类Dev

Extjs如何动态更改htmleditor的背景颜色

来自分类Dev

如何动态更改GridViewColumn的背景颜色?

来自分类Dev

如何使用 Css 动态更改背景颜色

来自分类Dev

在引导程序中动态更改背景颜色

来自分类Dev

动态更改网格中列的背景颜色

来自分类Dev

动态更改背景颜色

来自分类Dev

如何在Unity中更改工具提示背景颜色?

来自分类Dev

如何在JetBrain的IDE设置中更改背景颜色?

来自分类Dev

如何在Android中更改menuItem的背景颜色?

来自分类常见问题

如何在iOS7中更改UISearchBar的背景颜色

来自分类Dev

如何在引导程序中更改面板主体的背景颜色?

来自分类Dev

如何在NSPopOver中更改NSTextField背景颜色

来自分类Dev

如何在Android中更改操作栏的背景颜色?

Related 相关文章

热门标签

归档