2011-12-24 35 views
7

Làm cách nào để hiển thị và cập nhật thời gian mà không có sự kiện do người dùng tạo? Đây là bắt đầu của tôi ở đó, nhưng tôi không thể tìm ra cách để có được cái nhìn để làm mới.Cập nhật tự động hiển thị trong knockoutjs

function viewModel() { 
    this.clock = ko.computed(function() { return new Date().getTime(); }, this).extend({ throttle: 1000 }); 

}; 

ko.applyBindings(new viewModel()); 

với HTML sau:

<span data-bind="text: clock"></span> 

Đây là jsfiddle.

Trả lời

19

này dường như làm các trick:

function viewModel() { 
    var self = this; 

    this.clock = ko.observable(new Date()); 

    this.tick = function() { 
     self.clock(new Date()); 
    }; 

    setInterval(self.tick, 3000); 
}; 

ko.applyBindings(new viewModel()); 

khi kết hợp với HTML này:

<span data-bind="text: clock"></span> 
+0

nhã thực hiện. –

+0

succient! Tuyệt quá. –

0

ko.now = function(interval) { 
 
    var now = ko.observable(); 
 
    var time = new Date().getTime() 
 
    setTimeout(function() { 
 
    setInterval(function() { 
 
     now(new Date()); 
 
    }, interval); 
 
    now(new Date()); 
 
    }, interval - time % interval); 
 

 
    now(new Date(time - time % interval)); 
 
    return now; 
 
} 
 

 
ko.applyBindings({ now: ko.now(5*1000) });
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<div id="clock" data-bind="text: now"></div>

Các vấn đề liên quan