0.4.25 • Published 10 years ago

nexus-node v0.4.25

Weekly downloads
111
License
-
Repository
github
Last release
10 years ago

##nexus Code Climate

An MVVM-based client application framework

Installation

Bower

$ bower i nexus

Node.js

$ npm i nexus-node

Example

# Temperature is “measured” and displayed in two scales

# Raw business domain model
class TemperatureModel
	constructor: ->
		# nx.Cell is a “spreadsheet cell”
		@celsius = new nx.Cell value:-20

# ViewModel describes data transformation for representation in views
class TemperatureViewModel extends TemperatureModel
	constructor: ->
		super
		@fahrenheit = new nx.Cell
		# Cell-oriented data flow
		@fahrenheit['<-'] @celsius, (celsius) -> celsius * 1.8 + 32

# Views are plain functions nested arbitrarily and written pseudo-declaratively
AppView = (context) ->
	nxt.Element 'main',
		nxt.Element 'div',
			# Pin-point rendering will only change this part when 
			# bound data is modified
			nxt.Binding context.celsius, (celsius) ->
				nxt.Text "#{celsius}℃"
		nxt.Element 'div',
			nxt.Binding context.fahrenheit, (fahrenheit) ->
				nxt.Text "#{fahrenheit}°F"
		nxt.Element 'button',
			nxt.Text 'Measure!'
			# fake measurement
			nxt.Event 'click', context.celsius, -> Math.round(Math.random()*50 - 25)

window.addEventListener 'load', ->
	window.model = new TemperatureViewModel
	# Attach the view to the DOM (can be any existing node)
	document.body.appendChild AppView(model).data.node
0.4.25

10 years ago

0.4.24

10 years ago

0.4.23

10 years ago

0.4.22

10 years ago

0.4.21

10 years ago

0.4.20

10 years ago

0.4.19

10 years ago

0.4.18

10 years ago

0.4.17

10 years ago

0.4.16

10 years ago

0.4.15

10 years ago

0.4.14

10 years ago

0.4.13

10 years ago

0.4.12

10 years ago

0.4.11

10 years ago

0.4.10

10 years ago

0.4.9

10 years ago

0.4.8

10 years ago

0.4.7

10 years ago

0.4.6

10 years ago

0.4.5

10 years ago

0.4.4

10 years ago

0.4.3

10 years ago

0.4.2

10 years ago

0.4.0

10 years ago

0.4.0-alpha.4

10 years ago

0.4.0-alpha.3

10 years ago