Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace 'ArJs', ->
- class @Model
- private: {}
- primaryKey: 'id'
- constructor: (data) ->
- $.extend @, ko.mapping.fromJS data
- @[@primaryKey].subscribe (newval) =>
- print "JSC Fatal Error: Primary key \"#{@primaryKey}\" (#{data.id} => #{newval}) " +
- "for model \"#{@model.name}\" has been changed. Это влечёт к полному фейлу индексации данных.", "#900"
- @setup: (data) ->
- if !@::private[@::model.name]?
- @::private[@::model.name] = {
- properties: {}
- index: []
- }
- for i in data
- @::private[@::model.name].properties[i[@::primaryKey]] = new Models[@::model.name](i)
- @::private[@::model.name].index.push i.id
- @find: (pk) ->
- if pk is 'all' then return @all()
- if pk is 'first' then return @first()
- if pk is 'last' then return @last()
- return @::private[@::model.name].properties[pk]
- @all: ->
- return @::private[@::model.name].properties
- @first: ->
- for i of @::private[@::model.name].properties
- return @::private[@::model.name].properties[i]
- @last: ->
- for i of @::private[@::model.name].index.reverse()
- return @::private[@::model.name].properties[@::private[@::model.name].index[i]]
- @join: (index, value, data) ->
- for i of @::private[@::model.name].properties
- obj = @::private[@::model.name].properties[i]
- if data[obj[index]()]?
- obj[value] = ko.mapping.fromJS data[i]
- else
- obj[value] = ko.mapping.fromJS 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement