JSFiddle - React, Tailwind, and code Playground
by origineil
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
JavaScript
var Textbatch = function (data) {
var self = this;
self.id = ko.observable(data.id)
return self;
}
Project = function (data) {
var self = this;
self.id = ko.observable(data.id)
return self;
}
ViewModel = function (model) {
var self = this;
self.selectedProject = ko.observable();
self.selectedText = ko.observable();
self.Textbatches = ko.observableArray();
self.Projects = ko.observableArray(
ko.utils.arrayMap(model, function (item) {
return new Project(item);
}));
self.selectedProject.subscribe(function (project) {
/* ...some code... */
new Request.JSONP({
url: 'http://jsfiddle.net/echo/jsonp/',
data: {
id: 'someId'
},
onSuccess: function (response) {
var mappedTextbatches = $.map(response, function (item) {
return new Textbatch(item);
});
console.log("Update text batches")
self.Textbatches(mappedTextbatches);
console.log('init selectedText')
self.selectedText(self.Textbatches()[0]);
}
}).send();
/* ...some more code... */
})
console.log("Init selectedProject")
self.selectedProject(self.Projects()[0]);
self.parentIDFilteredTextbatches = ko.computed(function () {
console.log("Evaluating computed")
var textbatch = self.selectedText();
return ko.utils.arrayFilter(self.Textbatches(), function (item) {
return item.parentID === textbatch.parentID; /* ERROR ON THIS LINE */
});
});
}
ko.applyBindings(new ViewModel([{
id: 'p1'
}]))