knockoutjs,你如何使用observableArray来存储另一个可观察的历史?

时间:2013-03-19 02:33:28

标签: javascript jquery ajax knockout.js

我是Knockoutjs的新手。我有一个非常简单的模型,包含名称,值和历史变量。我已经尝试了几种方法,但无法让历史更新1次迭代。大多数方法因范围访问问题而失败。正如我所说,我是新来的。我还包括了这个问题Fiddle

this.tlmname = ko.observable();
this.tlmval = ko.observable();
this.history = ko.observableArray();


var telemItem = function (data) {

     this.tlmname = ko.observable();
     this.tlmval = ko.observable();
     this.history = ko.observableArray();
     this.update(data);

 };

ko.utils.extend(telemItem.prototype, {

     update: function(data) {


         this.tlmname(data.tlmname|| "Cheese");
         this.tlmval(data.tlmval || 0);
         this.history.push(data.tlmval);

         if (this.history().length > 50) this.history.shift();

     }

 });

var telemetryViewModel = function(telemVars) {

    this.telemVars = ko.observableArray(ko.utils.arrayMap(telemVars, function(data) {
            return new telemItem(data);
        }));

function UpdateModel( modelView ) {

    $.getJSON('/gtr/tests/ko/requestTelemetry.php', 
    function(data)
    {
        //modelView.telemVars(data.telemVars);
        //modelView(data.telemVars);

        modelView.update(data.telemVars);
        modelView.telemVarsDirect( getDirectVM( data.telemVars ) );

    }               
)};

0 个答案:

没有答案
相关问题