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 に答える