Do you want to reduce or simplify your code by adding default values to your objects? Since JayData 1.2.7 you can do it both with $data.define() and $data.Entity.extend().
Setting default values with $data.define()
1 2 3 4 5 6 |
<span class="kwrd">var</span> Todo = $data.define(<span class="str">"Todo"</span>, { MyField: { type: String, defaultValue: <span class="str">"myDefaultValue"</span> } }); <span class="kwrd">var</span> todoItem = <span class="kwrd">new</span> Todo(); alert(todoItem.MyField); //you will get "myDefaultValue" |
Setting default values with $data.Entity.extend()
1 2 3 4 5 6 |
$data.Entity.extend(<span class="str">"Todo"</span>, { MyField: { type: String, defaultValue: <span class="str">"myDefaultValue"</span> } }); <span class="kwrd">var</span> todoItem = <span class="kwrd">new</span> Todo(); alert(todoItem.MyField); //you will get "myDefaultValue" |
Avoiding default values
In case you created a type with default values and don’t want the default value to be set in a particular case, you can override the default behavior:
1 2 |
<span class="kwrd">var</span> todoItem = <span class="kwrd">new</span> Todo({}, { setDefaultValues: <span class="kwrd">false</span> }); alert(todoItem.MyField); //you will get undefined |