Jeff, I usually use an decorator function to wrap my code in, as this was an example i left it in the open. As far as why the `editorTypes` is outside the linker goes because the linker gets invoked for every directive instance we have, hence having it inside would make memory allocation for every call & if a reference is held by an nested function its not gc until all of the references are cleared. Simply to say to ease some memory.
Regards, Kamalakar Gadireddy Twitter: https://twitter.com/kamalakarg GitHub: https://github.com/gKodes On Sun, Apr 20, 2014 at 7:17 PM, Jeff Wilson <[email protected]> wrote: > Thanks, Kamal! And I really like the refactor you did to remove the > if-else-if statements. > > Question on JavaScript style and Angular scoping - why define the > editorTypes object outside of the scope of the module? I typically would > either define it inside the module, if that is the only place it was going > to be used, or I would define it in its own module and set up a dependency > on that module in this one. I guess I don't like to 'pollute' the global > name space. > > > On Saturday, April 19, 2014 11:52:54 PM UTC-4, Kamal wrote: >> >> Jeff, >> >> Here is an update off your plnkr http://plnkr.co/edit/ZgHcZi?p=preview, >> working as needed. The only thing to remember is when ever your are >> creating an new element for which you have bound angular directives, scope, >> any thing with angular you need to compile it using >> $compile<http://docs.angularjs.org/api/ng/service/$compile>service for it to >> work. >> >> Regards, >> Kamal >> >> On Sunday, 20 April 2014 03:46:42 UTC+5:30, Jeff Wilson wrote: >>> >>> I'm new to AngularJS and somewhat of a JavaScript amateur as well. >>> >>> I'm have a need to change the contents of a table cell based on the data >>> in the model. My model includes some metadata about a piece of data, and I >>> want to read the metadata and dynamically set the cell based on that data. >>> >>> For example, if the metadata looks like "{ type: 'text', value: 'Foo' }" >>> the contents of the cell should be a text input field, with the content of >>> the field set to "Foo". If the user edits the cell, perhaps to set it to >>> "Bar", I'd like to update the metadata accordingly (i.e., the new data >>> looks like "{ type: 'text', value: 'Bar' }". >>> >>> Likewise, if the metadata is "{ type: 'select', choices: ['A', 'B', >>> 'C'], value: 'B' }" then I want the cell to contain a 'select' element with >>> the values 'A', 'B', 'C' and the current selection of 'B', along with the >>> appropriate angular data binding. >>> >>> I'm having trouble figuring how to make this work. I have a plunker of >>> this here <http://plnkr.co/edit/avzhfpfBpST9pNA11g6Q?p=info>. >>> >>> This almost works but the binding is not working. >>> >>> Any suggestions on how to make this approach work, or a description of a >>> better approach, is welcome! >>> >>> >>> -- > You received this message because you are subscribed to a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/VOupWfQwp14/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
