(to działa tylko w Chrome, w tej chwili, ponieważ większość przeglądarek jeszcze nie wdrażają wyboru daty dla input type = „date”)Używanie Knockout.js w jaki sposób powiązać właściwość Date z selektorem daty HTML5?
W poniższym przykładzie MyDate zaczyna się jako obiekt bieżąco z aktualną datą , ale nie jest to odbierane przez dane wejściowe daty (które oczekują, że jego format będzie ciągiem w formacie RRRR/MM/DD).
Po wybraniu daty w selektorze, MyDate staje się łańcuchem w powyższym formacie.
W jaki sposób można to powiązać, aby MyDate pozostała datą javascript i została poprawnie zinterpretowana przez kontrolę wejścia?
See Zobacz http://jsfiddle.net/LLkC4/3/: -
<input data-bind="value : MyDate" type="date">
<hr>
<span data-bind="html: log" />
<script>
var viewModel = {
MyDate : ko.observable(new Date()),
log : ko.observable(""),
logDate : function() {
this.log(this.log() + this.MyDate() + " : " +
typeof(this.MyDate()) + "<br>");
}
};
viewModel.MyDate.subscribe(function (date) {
viewModel.logDate();
});
ko.applyBindings(viewModel);
viewModel.logDate()
</script>
Czy to nadal działa? Mój datepicker chrome odmawia wyświetlania dowolnej daty - tylko "mm/dd/rrrr" w polu, nawet gdy wybieram nowe daty, a nawet jak pojawiają się w wydruku dziennika. Czy wiesz, jak to naprawić? Walczę. –
@ uosɐs To nie działało dla mnie, dopóki nie zacząłem wywoływać 'ko.unwrap (valueAccessor())' w funkcji aktualizacji. – jbarz
Nie działa, dodaj viewModel.MyDate ("2/2/2012"); na dole skrzypiec i zobaczyć, że data w selektorze nie aktualizuje się. – pilavdzice