直接上代码:

class data

{

  public list:number[];

  constructor()

  {

    this.list=[0,0,0];

  }

}

class methods extends data

{

    constructor(){

      super();

      setInverval(function(){this.update();},1000);

    }

    public update():void

    {

      for(var i=0;i<this.list.length;i++)

      {

        this.list[i]++;

      }

    }

}

 

class vueModel {
    el: string;
    data: data;
    methods: methods;
    watch: any;
    constructor(selector:string) {
        this.data = new data();
        this.methods = new methods();

   this.el=selector; 

  }

}

var v=new Vue(new vueModel());

本意是让list中的数字每一秒加一,结果发现UI没有得到更新.

显然vue吃紧对象后进行了改造,update这是更新原来的data

中的list,vue中的data没有更新.正确的方法是通过vue调用update

在初始化vue后添加代码:

setInterval(function(){v.update();},1000);