0

我正在尝试使用用户数据(id、名称等)设置一个全局对象,并在模板中使用它来为评论着色。就像用户登录时一样,它会突出显示他们的评论。

我试过这个:

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 }

但这也没有用。我觉得这将是最简单的方法。使用与范围无关的全局信息并在模板​​本身中使用它的协议是什么?同时也保证用户数据的安全。

4

1 回答 1

0

如果您需要在 html 文档中引用服务,则必须将其分配给$scope. 你可以试试:

$scope.UserService = UserService;

在您的控制器中。

于 2012-11-22T06:10:30.690 回答