cheatsheets/js-model.md

86 lines
1.0 KiB
Markdown
Raw Permalink Normal View History

2014-02-25 10:32:14 +00:00
---
2015-11-24 05:09:17 +00:00
title: js-model
category: JavaScript libraries
2014-02-25 10:32:14 +00:00
---
2017-08-29 22:02:03 +00:00
### Example
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
```bash
Project = Model "project", ->
@extend
findByTitle: (title) -> ...
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
@include
markAsDone: -> ...
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
# ActiveRecord::Base.include_root_in_json = false
```
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
```bash
project = Project.find(1)
project = Project.findByTitle("hello")
project.markAsDone()
```
2014-02-25 10:32:14 +00:00
### Persistence
2017-08-29 22:02:03 +00:00
```bash
Project "hi", ->
@persistence Model.REST, "/projects"
@persistence Model.localStorage
```
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
```bash
Project.load ->
# loaded
```
2014-02-25 10:32:14 +00:00
### Attrs
2017-08-29 22:02:03 +00:00
```bash
project = new Project(name: "Hello")
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
project.attr('name', "Hey")
project.attr('name')
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
project.save()
project.destroy()
```
2014-02-25 10:32:14 +00:00
### Collection
2017-08-29 22:02:03 +00:00
```bash
Food.add(egg)
Food.all()
Food.select (food) -> ...
Food.first()
```
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
```bash
Food.find(id)
```
2014-02-25 10:32:14 +00:00
### Events
2017-08-29 22:02:03 +00:00
```bash
# Classes
Project.bind "add", (obj) ->
Project.bind "remove", (obj) ->
```
```bash
# Instances
project.bind "update", ->
project.bind "destroy", ->
```
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
```bash
project.trigger "turn_blue"
```
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
## References
{: .-one-column}
2014-02-25 10:32:14 +00:00
2017-08-29 22:02:03 +00:00
- <http://benpickles.github.io/js-model/>