OSDN Git Service

Regular updates
[twpd/master.git] / js-model.md
1 ---
2 title: js-model
3 category: JavaScript libraries
4 layout: 2017/sheet
5 ---
6
7 ### Example
8
9 ```bash
10 Project = Model "project", ->
11   @extend
12     findByTitle: (title) -> ...
13
14   @include
15     markAsDone: -> ...
16
17   # ActiveRecord::Base.include_root_in_json = false
18 ```
19
20 ```bash
21 project = Project.find(1)
22 project = Project.findByTitle("hello")
23
24 project.markAsDone()
25 ```
26
27 ### Persistence
28
29 ```bash
30 Project "hi", ->
31   @persistence Model.REST, "/projects"
32   @persistence Model.localStorage
33 ```
34
35 ```bash
36 Project.load ->
37   # loaded
38 ```
39
40 ### Attrs
41
42 ```bash
43 project = new Project(name: "Hello")
44
45 project.attr('name', "Hey")
46 project.attr('name')
47
48 project.save()
49 project.destroy()
50 ```
51
52 ### Collection
53
54 ```bash
55 Food.add(egg)
56 Food.all()
57 Food.select (food) -> ...
58 Food.first()
59 ```
60
61 ```bash
62 Food.find(id)
63 ```
64
65 ### Events
66
67 ```bash
68 # Classes
69 Project.bind "add", (obj) ->
70 Project.bind "remove", (obj) ->
71 ```
72
73 ```bash
74 # Instances
75 project.bind "update", ->
76 project.bind "destroy", ->
77 ```
78
79 ```bash
80 project.trigger "turn_blue"
81 ```
82
83 ## References
84 {: .-one-column}
85
86 - <http://benpickles.github.io/js-model/>