
Product
Announcing Socket Fix 2.0
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
ember-flexure
Advanced tools
Flexure is a library for helping you manage data and communicate with servers in Ember.js.
It's designed to fill the niche between when Ember Data is too heavy or opinionated for your needs, but raw ajax and javascript objects are not enough.
Its primary goal is to help you get your data into Ember objects that you can do useful things with, like define computed properties or manage simple relationships.
A bower component is forthcoming.
You should be using the new Ember resolver, preferably via ember-cli.
To define a model, create subclass EF.Model. For example,
// app/models/person.js
export default EF.Model.extend({
name: EF.attr("string"),
hobbies: EF.hasMany("hobby"),
isNice: EF.attr("boolean", {default: true}),
isNotNice: Ember.computed.not("isNice"),
});
// app/models/hobby.js
export default EF.Model.extend({
name: EF.attr("string"),
skill: Ef.attr("number"),
});
In Ember Data, you would pull your models out of the store. Flexure, on the other hand, does not have an identity map; the term "store" didn't feel right. Flexure instead provides Models, a utility class for creating model instances.
This object is automatically injected into your routes and controllers as the
models
property.
As a basic example,
// app/routes/index.js
export default Ember.Route.extend({
model: function() {
this.models.make("person", {
name: "Jereth",
isNice: false,
hobbies: [
{
name: "Ruling Goblins",
skill: 7,
},
{
name: "Babysitting",
skill: 0,
},
{
name: "Hair",
skill: 10,
},
]
});
}
});
Note that the objects under hobbies
will automatically be converted into
instances of model:hobby
, as defined in the previous section.
Models also provide basic support for managing:
Flexure also provides a utility object for communicating with your server.
To define it, subclass EF.API and register it as api:application
. This object
is automatically injected into your routes and controllers, and has access to
Models
.
// app/apis/application.js
export default EF.API.extend({
host: "//api.mydomain.com",
headers: {
"X-My-Auth-Token": "xxxx"
}
findPerson: function(name) {
var models = this.models;
return this.request({
type: "GET", //default
path: "person/" + name,
}).then(function(data) {
return models.make("person", data);
});
}
});
MIT License.
FAQs
A simple model framework for Ember.js
We found that ember-flexure demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.