Meteor uygulamamda hesap oluşturmak için ian:accounts-ui-bootstrap-3
kullanıyorum. Bu uygulamada, kullanıcının kullanıcı adını ve cinsiyetini belirttiği biraz özelleştirilmiş versiyon kullanıyorum.Metan'da kullanıcı girdisine göre profil alanı değeri nasıl ayarlanır: ian: accounts-ui-bootstrap-3?
Accounts.ui.config({
requestPermissions: {},
extraSignupFields: [{
fieldName: 'username',
fieldLabel: 'Username',
inputType: 'text',
visible: true,
validate: function(value, errorFunction) {
if (!value) {
errorFunction("Please write your username");
return false;
} else {
return true;
}
}
}, {
fieldName: 'gender',
showFieldLabel: false, // If true, fieldLabel will be shown before radio group
fieldLabel: 'Gender',
inputType: 'radio',
radioLayout: 'vertical', // It can be 'inline' or 'vertical'
data: [{ // Array of radio options, all properties are required
id: 1, // id suffix of the radio element
label: 'Male', // label for the radio element
value: 'm' // value of the radio element, this will be saved.
}, {
id: 2,
label: 'Female',
value: 'f',
checked: 'checked'
}],
visible: true
}, ]
});
Bu iyi çalışır ve ben verilerini (biraz kısaltılmış) bir kullanıcı, olsun şuna benzer:
{
"username" : "testuser",
"emails" : [
{
"address" : "[email protected]",
"verified" : false
}
],
"profile" : {
"username" : "testuser",
"gender" : "f"
}
}
Şimdi denilen yeni bir alan ayarlamak için "cinsiyet" değeri kullanmak istiyorum " "jeneric-male.png" ya da "generic-female.png" ifadelerine sahip. https://stackoverflow.com/questions/34435674/meteor-accounts-entry-how-to-set-extrasignupfields-to-meteor-user-profile numaralı yayında Hesapların kullanılması önerilir. onCreateUser mekanizması. Bu yüzden bu yazdım ve sunucu katalogunda main.js dosyaya koydu:
Accounts.onCreateUser(function(user){
if (user.gender=='m') {
user.avatar = "generic-male.png"
} else {
user.avatar = "generic-female.png"
}
})
Ama bu aşağıdaki hata üretir:
Exception while invoking method 'createUser' Error: insert requires an argument
Ben kullanıcı parametre olmadığı için bu varsayalım onCreateUser yöntemine geçti. Ama bu nasıl yapılmalı?
sorunu çözmek gerekir sizin 'Accounts.onCreateUser' işlevi içinde' user' dönersek. –