У меня есть Person
и я хочу fullName
поле и значение автоматически создается, когда человек меняет свои firstName
или lastName
поля.Метеор Автоформа `this.field («KEYNAME»). Value` возвращает неопределенное значение в схеме
People.attachSchema(new SimpleSchema({
firstName: {
type: String,
optional: false,
label: 'First Name'
},
lastName: {
type: String,
optional: false,
label: 'Last Name'
},
fullName: {
type: String,
optional: false,
label: 'Full Name',
autoValue: function() {
var firstName = this.field("firstName");
var lastName = this.field("lastName");
if(firstName.isSet || lastName.isSet){
return firstName.value + " " + lastName.value;
} else {
this.unset();
}
}
}
}));
Если я после этого сделать
People.update("ZqvBYDmrkMGgueihX", {$set: {firstName: "Bill"}})
fullName
устанавливается как Bill undefined
Что я делаю не так?
Удивительно, что сработало. Я немного смущен тем, что 'this.field (« someField ») на самом деле ссылается. Когда объект вставляется в «Люди», устанавливаются только «firstName» и «lastName». Таким образом, 'this.field (" firstName ")' всегда ссылается на значение во время любой операции 'Create' или' Update'? – fuzzybabybunny
@fuzzybabybunny yes, 'this.field (" firstName "). Value' всегда ссылается на значение независимо от того, установлено ли оно во время текущей операции или предыдущей операции. – Kishor
Хммм, хорошо, поэтому функция в 'autoValue' не нуждается в каком-то триггере/событии для ее запуска? – fuzzybabybunny