我正在尝试使用用户数据(id,name等)设置一个全局对象,并在模板中使用它来为注释添加颜色。就像用户登录一样,它会突出显示他们的评论。
我试过这个:
app.factory('UserService', function() {
return {
name : 'Johnny Williams',
id : 2
};
});
然后我将注释名称设置为UserService.name并且可以正常工作。但我不想做的是:
var setcommentClass = function(comment) {
if (comment.name === UserService.name) {comment.type = 'user'}
else {comment.type = 'client'}
};
然后在模板中使用:
ng-class="{user: comment.type == 'user' }
这不起作用。这是为什么?必须有一种更有说服力的方式来做到这一点。我不想在数据库中存储“comment.type”,因为它是无用的信息。我尝试过使用:
ng-class="{user: comment.name == UserService.name }
但这也不起作用。我觉得这是最简单的方法。使用与范围无关并在模板中使用它的全局信息的协议是什么?同时还保证用户数据安全。
答案 0 :(得分:0)
如果您需要在html文档中引用该服务,则必须将其分配给$scope
。
你可以尝试:
$scope.UserService = UserService;
在您的控制器中。