1

フロントエンドでポスターの UserID を表示することができ、ID の代わりにユーザー名を表示するためにさまざまなことを試しました。何が間違っているか、何をすべきかを見つけることができません。

投稿するフォーム

    <form ng-show="$root.currentUser">
    <label>Name</label>
    <input ng-model="newPost.name">
    <label>Description</label>
    <input ng-model="newPost.description">
    <button ng-click="newPost.owner=$root.currentUser._id; posts.push(newPost)">Add</button>    
    </form>

コントローラ

    angular.module('posts').controller('PostsCtrl', ['$scope', '$meteor',
function($scope, $meteor){

    $scope.posts = $meteor.collection(Posts);
    $scope.remove = function(post){
        $scope.posts.remove(post);
    };
}]);

モデル:

    Posts = new Mongo.Collection("posts");    
        Posts.allow({
            insert: function (userId, post) {
                return userId && post.owner === userId;
            },
            update: function (userId, post, fields, modifier) {
                return userId && post.owner === userId;
            },
            remove: function (userId, post) {
                return userId && post.owner === userId;
    }
    });

編集: HTML:

    <p class="post-user">{{post.owner}}</p>

これですべて機能しますが、今回はユーザー名ではなくユーザー ID が表示されます。

前もって感謝します!

4

2 に答える 2

1

他のすべてが正しいと思われる場合は、これを試してください<p class="post-user">{{post.owner}}</p>。私が言ったように、私は隕石を知りません。おそらくあなたのコードは正しいでしょう。ただし、投稿を追加するときは、owner属性をユーザー名に設定します。設定した場所が見つかりませんnewPost.username

于 2015-07-05T11:43:44.210 に答える
1

このステップを下にスクロールすると、Meteor の User オブジェクトのデフォルト構造を見つけることができます: http://angular-meteor.com/tutorial/step_09

ユーザー名はどこで定義していますか? それを定義していなければ、どこにもありません。通常、ユーザー情報は「プロファイル」キーの下に保存されますが、ログインに使用しているサービス (Facebook、電子メール パスワード) と、ユーザー データを保存する独自の実装によって異なります。

于 2015-07-07T00:24:14.360 に答える