Knockout.js 2.1.0 observableArray Subscription Test

Trying to see if you can subscribe to an observableArray with beforeChange and have it fire. It was now working for me with observableArray and changing to subscribe to a computed property worked. That was weird.

by joshjs

HTML

<h2>All Ids:</h2>
<ul data-bind="foreach: ids">
    <li data-bind="text: $data"></li>
</ul>
<br>
<h2>Single Id:</h2>
<p data-bind="text: singleId"></p>

JavaScript

function ViewModel() {
    var self = this;
    
    self.ids = ko.observableArray([]);

    self.hasSingleId = ko.computed(function () {
        return self.ids().length === 1;
    });
    
    self.singleId = ko.computed(function () {
        if (self.hasSingleId()) {
            return self.ids()[0]
        }
        return null;
    });
}

var myVM = new ViewModel();
    
ko.applyBindings(myVM);

myVM.ids.subscribe(function(value) {
    console.log("changing ids");
}, null, "beforeChange");

myVM.singleId.subscribe(function(value) {
    console.log("changing singleId");
}, null, "beforeChange");
    
myVM.ids.push(1);
myVM.ids.push(2);
myVM.ids.push(3);