Я использую нокаут и машинописный текст в моем проекте, и мне нужно построить в модели представления три поля, которые будут иметь тип datetime. Они должны быть обновлены, когда условие встретится.Нокаут, наблюдаемый и время
Что у меня есть:
Вид:
<div data-bind="if: step1CompleteY">
<span data-bind="text: step1CompleteY" />
<input type="datetime" data-bind="value: timestampSt1()" />
</div>
<div data-bind="if: step12Complete">
<span data-bind="text: step12Complete" />
<input type="datetime" data-bind="value: timestampSt2()" />
</div>
<div data-bind="if: step23Complete">
<span data-bind="text: step23Complete" />
<input type="datetime" data-bind="value: timestampSt3()" />
</div>
вид Модель:
myTimestamp = ko.observable(new Date().getDate() + "/" + new Date().getMonth() + "/" + new Date().getFullYear() + " " + new Date().getHours() + ":" + new Date().getMinutes());
timestampSt1 = ko.observable(this.myTimestamp);
timestampSt2 = ko.observable(this.myTimestamp);
timestampSt3 = ko.observable(this.myTimestamp);
step1CompleteY = ko.computed({
read:() => this.objectChecks.exportValue() === 'Yes'
})
step12Complete = ko.computed({
read:() => { return this.objectChecks.exportValue() === 'No' || this.objectChecks.rfqStatusValue() === 'Approved' }
})
step23Complete = ko.computed({
read:() => { return (this.objectChecks.indemnityValue() === 'Yes' || this.objectChecks.indemnityValue() === 'N/A' || this.objectChecks.rfqStatusValue() === "Denied") }
})
Проблема здесь в том, что время, дата появляются, и я не знаю, как использовать «setTimeout» работать с этими наблюдаемыми и в основном обновлять это время только тогда, когда условия встречаются.
Любые идеи?
Я реализовал ваше предложение, и вы правы с помощью письма. Теперь, имея это, как сделать, чтобы иметь timestampSt1, timestampSt2 принимает разные значения в зависимости от момента, когда условие становится истинным. В настоящее время метка времени отображается со значением, когда страница обновляется. –
Не делайте этого: 'data-bind =" значение: timestampSt1() "' - попробуйте это вместо: 'data-bind =" значение: timestampSt1 "' Первое не будет связывать значение правильно - оно будет читать его но не буду писать обратно – Quango
Я уже пробовал это и возвращал: Неожиданный вызов метода или доступа к свойствам. –