awa.ui.ModelForm Class
/var/www/azaleahealth.com/branches/docs/source_repo/awa/resources/apps/js/awa/ui/ModelForm.js:90
The ModelForm listens to the element you provide and checks to see if any elements with a name attribute changes. It will then set the changed value in the model with the corresponding attribute. Also, if the model changes, it will update the html element with that changed attributes name. Yes this is somewhat blackmagic but it reduces the amount of code you have to write. This class also handles errors in the model and properly adds them to the view next to the displayed element.
HTML Attributes for models and model forms.
If you choose not to use a template builder (not recommended) you can create your own template and use these
attributes on elements so that the model form can act correctly with the view.
name: the actual input element (i.e textarea, selects, input, etc.)
data-model-attr-field: the container element for an attribute. Used for hiding an entire field or display a field in error.
data-model-attr-header: The element that labels an attribute. Currently displays the name of an attribute and if it's required
data-model-attr-error: The element that holds the error description
data-model-attr-input: The element that will contain the input elements, if you want the model form to build it for you. (not fully reliable yet)
data-model-attr-display: The element that only displays data
Refer to awa.mvc.Model and the attributeProps field to see how the ModelForm interacts with the Model you provide.
Constructor
awa.ui.ModelForm
-
options.model -
options.el
Parameters:
-
options.modelawa.mvc.Modelmodel that the model form updates and manages
-
options.elElementUnlike other views, you must supply a pre-existing element to this view.
Item Index
Methods
Methods
bindToModel
-
[model]
Binds the view to a Model. will explain more later.
Parameters:
-
[model]awa.mvc.Model | Backbone.Model optionalModel to bind to
Returns:
check
-
name -
checked
checks the given element with the name
Parameters:
-
nameStringelement name
-
checkedBooleanCheck or uncheck
Returns:
this
destroy
()
awa.mvc.View
clears out all widgets, grids, and events. Also removes and destroys children
Returns:
this
doChildrenLayouts
()
Undefined
Needed for height fixing and other positioning changes
Returns:
doLayout
()
Undefined
Needed for height fixing and other positioning changes
Returns:
focus
-
name
calls jQuery.focus on the given element with the name
Parameters:
-
nameStringelement name
Returns:
this
get
-
name
return value from element
Parameters:
-
nameStringelement name
Returns:
value
getAttrField
-
attr
Parameters:
-
attrStringAttribute name
Returns:
awa.ui.ModelFormAttribute associated with attribute
getAttrInput
-
attr
Parameters:
-
attrStringAttribute name
Returns:
Input selector
getWidget
()
Array
get the view controlling a widget by it's selector
Returns:
widgets
onRendered
-
callback -
context
This is called only once in the lifetime of a view, if you bind to it before the view is rendered, the function will be called after triggerRendered is called.
Parameters:
-
callbackFunctionCallback
-
contextObjectDefines scope of callback
Returns:
refresh
()
awa.mvc.View
There is a habit of re-rendering entire views when it may not be necessary. Parent views can check the rendered flag and call refresh instead if the child view has already been rendered.
Returns:
this
reload
()
awa.mvc.ModelForm
Call this when new elements are added/removed from the main element of the form.
Returns:
this
render
()
Undefined
overrides backbone.view's render method. Sets the rendered property to rendered and renders any provided templates. This also binds any buttons in the view to it's action IF it has an actions attribute. The action attribute value should match the name of the function in the view class.
Returns:
requestChange
-
callback
Parent views should check this before changing/swapping a view. Useful for views that are in edit mode that you want to do confirmation before leaving.
Parameters:
-
callbackFunctionfunction to call when you have determined if the view can close or not. If it can close, return an object with property 'success' set to 1.
Returns:
requestClose
-
callback
Parent views should check this before closing a view. Useful for views that are in edit mode that you want to do confirmation before closing.
Parameters:
-
callbackFunctionfunction to call when you have determined if the view can close or not. If it can close, return an object with property 'success' set to 1.
Returns:
setElement
-
element -
[delegate]
Overidden setElement method applies the className to the new element the view is applied to. Also, if multiple views are passed in (what is returned from a jquery selector) it will be the top of the list.
Parameters:
-
elementJquery.SelectorJquery selector
-
[delegate]? optional?
Returns:
toggle
-
name
calls jQuery.toggle on the given element with the name
Parameters:
-
nameStringelement name
Returns:
this
triggerRendered
-
args
The view should only call this once its completely rendered. This does not include refreshing views (i.e. grids changing pages). This also sets the view's rendered property to true.
Parameters:
-
argsObjectparameter to emit
Returns:
viewOptions
()
Array
the constructor uses this function to determine which properties to pull out of the passed in options to directly attach to the view. All other options can be referenced from the view's options property
Returns:
Acceptable view options
Properties
__parent__
View
Parent view object
Default: undefined
className
Boolean | Function
when this view is rendered, it will create a new element with this class added. If the setElement method is used, this will append itself to the class attribute
Default: "awa-mvc-View"
closeOnReplace
Boolean
Mostly for views that contain multiple views. This allows a parent view to know that the view should be closed and destroyed when another view is swapped in.
Default: false
globalKeys
Object
used for the keymaster plugin. These will be scoped to the entire app.
Default: undefined
keys
Object
used for the keymaster plugin. These will be scoped to this view in the future.
Default: undefined
refreshOnReplace
Boolean
Mostly for views that contain multiple views. This allows a parent view to know that the view should be refreshed when this view is swapped back in.
Default: true
rendered
Boolean
Lets you know if this view object has been rendered or not. If you override the render method without doing a supercall, be sure to set it to true when you are done rendering.
Default: false
title
Strin
Can be used by parent views to put on tabs, control bars, popup headers, etc. Use accessor methods.
Default: "View"
tpl
Function
default template to use with this view, the render method will use this and inject the resulting html into it's $el.
Default: undefined
tplArgs
Object
arguments that are passed to the template
Default: undefined