I have a oj-select-single with the data coming from a CollectionDataProvider via a factory object.
If I leave the oj-select-single without a default value all appears fine.
However if I try and set the default value (line 32 below) it is suddenly firing off a bazillion identical ajax requests before finally giving a Maximum call stack size exceeded error in ojmodel. It doesn't even appear to be waiting for the first one to complete before firing off the next ones, otherwise I'd assume it be due to the data coming back incorrectly.
I'm obviously doing something wrong, but I'm not sure what. Is anyone able to point me in the right direction? Ta.
HTML:
<oj-select-single value="{{empCode}}" data="{{empProvider}}" item-text="ename"></oj-select-single>
JS:
require(['knockout',
'ojs/ojcore',
'jquery',
'ojs/ojcollectiondataprovider',
'ojs/ojknockout',
'ojs/ojselectsingle'
], function(ko, oj, $, CollectionDataProvider) {
let ViewModel = function() {
const self = this;
var EmpFactory = {
url: 'https://apex.oracle.com/pls/apex/oraclejet/emp/',
createEmpModel: function () {
var Emp = oj.Model.extend({
urlRoot: this.url,
idAttribute: "empno",
});
return new Emp();
},
createEmpCollection: function () {
var Emps = oj.Collection.extend({
url: this.url,
fetchSize: 50,
model: this.createEmpModel()
});
return new Emps();
}
};
self.empCode = ko.observable();
var col = EmpFactory.createEmpCollection();
self.empProvider = ko.observableArray([]);
self.empProvider(new CollectionDataProvider(col));
self.empCode(7698);
};
ko.applyBindings(new ViewModel(), document.getElementById('container'));
});
Example jsfiddle here: https://jsfiddle.net/gushie/mxLfsgdy/1/
Message was edited by: Jonathan Corwin - Fixed URL to broken version