パッケージを使用する:alanning/meteor-roleusersコレクションからroles配列を読み取る方法は?
他のユーザーの役割を管理するための管理者用の簡単なUIを構築しています。ユーザーは複数のロールを持つことができます。ロールを選択するためにチェックボックスを使用しています。
私が直面してる問題は、私は、ユーザーのコレクションに保存されている役割のアレイにアクセスすることができないんだということです。ヘルパーには、私がチェック...
注意として、UIにそれをロードするために、ユーザーの役割を確認しています:このHTMLは今ちょうどそれをテストするために、すべてのユーザーがアクセス可能です。私はそれが動作するようになった後、それは管理者のためだけにavailbeされます。このコードはすべてのユーザーではなく、サインインしたユーザーに対してのみ機能することに気付きました。
マイコード:
HTML:
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r1" checked="{{isRoleChecked 'r1'}}"r1</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r2" checked="{{isRoleChecked 'r2'}}">r2</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r3" checked="{{isRoleChecked 'r3'}}">r3</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r4" checked="{{isRoleChecked 'r4'}}">r4</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r5" checked="{{isRoleChecked 'r5'}}">r5</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r6" checked="{{isRoleChecked 'r6'}}">r6</label>
isRoleCheckedヘルパー:デフォルトでは
isRoleChecked: function(value) {
// didn't work
roles = Roles.getRolesForUser(this._id);
if (roles) {
for(var i=0; i < roles.length; i++) {
if (roles[i] == value){
return true;
} else {
return false;
}
}
}
},
は – MJO
@ghybs上記の答えに記述されている動作は、特に 'autopublish'と関連があります(https://docs.meteor.com/api/accounts.html#Meteor-usersを参照)。それ以外の場合は、他のユーザーの 'profile'データもないでしょう。 – ghybs
ありがとうございました – MJO