敲除组件会更新可观察的父模型,但随后又恢复到旧值

时间:2018-10-04 09:20:53

标签: javascript knockout.js knockout-components

我有一个计数器组件,并将其父视图模型作为data参数传递给它。当用户单击时,我的计数器组件将在我的父视图模型中更新一个可观察对象(当我订阅它并记录传递的新值时,它的值就会改变)。

父视图模型的简化代码:

const Day = class {
  constructor(params){
   this.counters = {
     hours: ko.observable(null),
     price: ko.observable(null)
   };

   this.counters.hours.subscribe(newValue => console.log(newValue)); //returns new value passed from component
}

   getHourValue(){
     console.log(this.counters.hours()); //returns null
   }
}

const day = new Day();

day.counters.hours(1); // Logs 1
day.getHourValue();    // Logs 1 as well...
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

所以值似乎在更新,但是当我调用getHourValue方法时,它再次返回null。这是什么问题感谢您的帮助!

0 个答案:

没有答案