Have a look (attached)
So in the example, this is template 1
..and here's template 2:
So the populating of template 1 works fine, 3 items bound, 3 items displayed. So template 2 however is supposed to return a list of verbs (getVerbs) based on the current ID of that item.
So debugging, it seems like $merge is appending the dynamic items to commonVerbs. Does not making a varable off the "
What's the preferred way to do this instead?...serialize to JSON and back or something?
So in the example, this is template 1
<script id="campus-template" type="text/x-kendo-template"> <div class="campus-phase-block" data-bind="attr: {data-campusid: CampusID}"> <h3 data-bind="text: Campus"></h3> <ul data-template="phase-template" data-bind="source: PhaseData" class="phaseBlocks"> </ul> <div class="verbs"> <h3>Available Actions</h3> <ul data-template="verb-template" data-bind="source: getVerbs" class="dynamic-list"> </ul> </div> </div></script>..and here's template 2:
<script id="verb-template" type="text/x-kendo-template"> <li data-bind="click: onRunVerb"> <span data-bind="text: text"></span> </li> </script>So the populating of template 1 works fine, 3 items bound, 3 items displayed. So template 2 however is supposed to return a list of verbs (getVerbs) based on the current ID of that item.
getVerbs: function (campus) {//Figure out what phase the campus is in, and apply the right verbsvar dynamicItemVerbs = this.verbs[campus.Phase - 1].verbsvar commonVerbs = this.verbs[7].verbs; //The default items/*for (var i = 0; i < itemVerbs.length; i++) {returnVerbs.push(itemVerbs[i]);}*/var merge = $.merge(commonVerbs, dynamicItemVerbs);return merge;},So debugging, it seems like $merge is appending the dynamic items to commonVerbs. Does not making a varable off the "
this.verbs[7].verbs" make a copy of that array?What's the preferred way to do this instead?...serialize to JSON and back or something?