我正在尝试更改数据绑定(bind)的值,并在屏幕上更改该值,但我没有得到它。
我的onPageLoaded
export function onPageLoaded(args: EventData) {
main = <Page>args.object;
main.bindingContext = fromObject({
loading: false,
next: true,
prev: false,
count: 0,
percent: 10,
dataBoundVariable: null,
form_hemodialysis: null,
form_hemoderivatives: null,
form_special_medicine: null,
form_medicine: null,
form_antibiotics: null,
form_bandaid: null,
form_speech_therapy: null,
form_motor_therapy: null,
form_respiratory_therapy: null,
form_other_therapy: null,
form: {
patientStatus: null,
reason: null,
assistantDoctor: null,
council: null,
hospitalizationTypeId: null,
hospitalizationDate: '6/1/2019',
cidId: null,
accommodationId: null,
hda: null,
diagnosis: null,
speechtherapy_start_date: null,
speechtherapy_frequency: null,
motortherapy_start_date: null,
motortherapy_frequency: null,
respiratorytherapy_start_date: null,
respiratorytherapy_frequency: null,
othertherapy_start_date: null,
othertherapy_frequency: null,
procedures: [],
antibiotics_name: null,
antibiotics_start_date: null,
antibiotics_end_date: null,
antibiotics_prescription: null,
comment: null,
special_medicament: null,
medicine: null,
diets: [],
gasotherapies: [],
dressings: array,
procedure
},
status: [
'Alta',
'Internado',
'Não encontrado'
],
reasons: [],
internationTypes: [],
accommodations: [],
diets: [],
cdi: ['Rafael', 'Deivid'],
gasotherapies: [],
bandaidPhases: ['I', 'II', 'III', 'IV'],
bandaid: {
phase: null,
region: null,
lesion_width: null,
lesion_length: null,
used_cover: null,
expected_exchange: null
},
procedure: {
name: null,
date: null
},
statusSelected: null,
otherDiets: false,
otherGasotherapies: false
})
}
export function selectDateInternacao(args){
modalDatetimepicker = new ModalDatetimepicker();
modalDatetimepicker
.pickDate({
title: "Selecione a data",
theme: "light"
})
.then(result => {
var date = `${result.day}/${result.month}/${result.year}`
main.bindingContext.form.hospitalizationDate = date
})
.catch(error => {
console.log(`Error: ${error}`);
});
}
值得记住的是,该值已更新,它在屏幕上不会更改,但如果我给出 console.log(main.bindingContext.form.hospitalizationDate)
,该值就会更新
最佳答案
当您使用fromObject({...})
时,只会监视直接属性的更改。 modalDatetimepicker
嵌套在 form
内,因此 form
上的任何更改只能触发 UI 上的更新。您可以使用以下任一语法强制它,
为表单分配一个新对象
main.bindingContext.form = Object.assign({}, main.bindingContext.form, {
hospitalizationDate: date
});
(或)
通过触发属性更改事件强制进行更改检测
main.bindingContext.form.hospitalizationDate = date;
main.bindingContext.notifyPropertyChange('form', main.bindingContext.form);
关于javascript - 如何使用 NativeScript 更改值数据绑定(bind)字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54065568/