Because you're passing the unwrapped value of maths_total (self.maths_total()
). This way tableView
does not know when that value changes. Instead, you should pass the actual observable:
self.table_totals.push(new tableView('column 1', 15, self.maths_total, 45));
And then check the variable inside tableView
self.val_2 = ko.isObservable(val2) ? val2 : ko.observable(val2)