WP-API: JavaScript client - fix setup of models used by wp.api.collections objects.

Correct setup for the `model` attribute of `wp.api.collections` objects. Set the collection model as a function that returns a new model of the underlying type, instead of setting it as the model prototype. Fixes an issue where models for fetched collections weren't set up properly and didn't have the expected mixin methods such as `getCategories` available.

Props jesseenterprises.
Fixes #39070.


git-svn-id: https://develop.svn.wordpress.org/trunk@39603 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Adam Silverstein 2016-12-15 12:53:26 +00:00
parent 79ded07a1a
commit 7503daedd1
1 changed files with 6 additions and 2 deletions

View File

@ -1234,7 +1234,9 @@
},
// Specify the model that this collection contains.
model: loadingObjects.models[ modelClassName ],
model: function( attrs, options ) {
return new loadingObjects.models[ modelClassName ]( attrs, options );
},
// Include a reference to the original class name.
name: collectionClassName,
@ -1257,7 +1259,9 @@
url: routeModel.get( 'apiRoot' ) + routeModel.get( 'versionString' ) + routeName,
// Specify the model that this collection contains.
model: loadingObjects.models[ modelClassName ],
model: function( attrs, options ) {
return new loadingObjects.models[ modelClassName ]( attrs, options );
},
// Include a reference to the original class name.
name: collectionClassName,