diff options
Diffstat (limited to 'doc/views/faq.htm')
-rw-r--r-- | doc/views/faq.htm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/views/faq.htm b/doc/views/faq.htm new file mode 100644 index 0000000..c1cffa1 --- /dev/null +++ b/doc/views/faq.htm @@ -0,0 +1,45 @@ +<div class="row"> + <div class="col-sm-12"> + <h3 class="pageHeading">Frequently Asked Questions</h3> + + <p> + People asked me a lot of questions regarding the decisions behind the directive's design. Why this? why not that? + So here are some of the explanations: + </p> + + <h5>The models - why do they have to be array of objects? Why aren't you using ng-options like most solutions?</h5> + <p> + I believe that an element is simply an embodiment of the data it contains. Something like "form will follow function" + idea. In this case, I believe an array of object is the best data structure to use. With array of objects, + you know how your element looks like, which data are checked / disabled, etc, just by looking at it. + </p> + + <h5>... and why can't we use multi-dimensional input-model?</h5> + <p> + There's no doubt that I can add more codes to process multi-dimensional array into a flat array, + but that will add more complexities into the directive. Do me a favour - flatten the multi-dimensional + array into a flat array in your controller before you pass it into the input-model. Another reason is + that at the moment, AngularJs' <code>ng-repeat</code> has no standard way of looping over multi-dimensional + array. There are some hacks available, but again the extra complexities are not worth it. + </p> + + <h5>Why output-model is still an array of objects, even when there's only one item?</h5> + <p> + So that you don't need to write different logic to process the output data. Once an array, always an array (At least in multiple selection mode - + things might change in the single selection mode. I'll see how it goes along the way). + </p> + + <h5>It's very slow with 99999 selection items. It also shows memory leak symptoms.</h5> + <p> + This directive is a practical solution, not a performance champion. It will not win any coding competition. + Anyway, rest assured that I always try to optimize the code with every iteration. + </p> + + <h5>The directive is great, but it's not the "Angular way" (or whatever way).</h5> + <p> + Unfortunately this is a trade-off in order to achieve some of the functionalities. + My noob skill, as well as lack of proper development time is also a factor. + </p> + </div> +</div> + |