I am new to Angular but know a little of JS and bit of jQuery.
I have an engineering application that is somewhat complex and I want to
get a constructive critical eye of someone experienced with Angular on how
to go about implementing the app, and even if Angular is a good choice for
the app. Maybe I can get away with JS or JS + some jQuery or something
else instead.
The app (as how a user sees it from UI point of view):
1. *Filling Out a Complex Interactive Form*. A fairly complicated form
with lots of fields and options is presented to the user. Some options are
simple such as checkboxes, or select boxes. But there may be more design
conditions to be entered on the form itself, so clicking "enter more design
conditions" button on the form brings up more form fields, which are then
populated by the user. There should also be a way that allows to populate
the fields automatically (i.e. from Database), according to some logic -
for example, if user saved their previous design points, those can be
loaded back instead of having the user enter them again.
2. *Submit Form*. User then clicks Submit, after which some internal
work is done behind the scenes to compute "scenarios".
3. *Display Choices*. Between 1 and some number n scenarios are
presented to the user, displaying certain configuration state of their
selection done on the previous form. A single "scenario" is a several
tables with data, charts, and other information presented on the page
dynamically. User can click Next and Previous to navigate between the
scenarios, where the end result is like flipping pages - each page has a
scenario and only one scenario is shown at a time on the page. As part of
step 2, it is determined the exact details of how what scenario should look
like, i.e. what tables/data are displayed, what parts of tables/data are
hidden, and so on.
4. *Save a Choice*. User clicks Save, and their choice of scenario is
saved to a backend database, and then the result of their choice is
displayed to them, along with some details. Their result is shown among
other results if any were selected previously
5. *Display Results.* User can do the cycle 1 through 4 several times,
so several choices (results) can be accumulated and shown to the user.
This step in the application is where results are shown as line items as a
list, each with its own sub-items and other info. These line items can be
moved around, manipulated and saved for later. Miscellaneous lines and
sub-lines can be added directly to the Results page as well, side-stepping
the form. Final results page is polished, then saved (to the DB) and can
be used to create reports and such.
My questions are:
- I know this can be done in Angular, but how easy is to implement in
Angular -- is Angular workflow/model good for this kind of an app?
- Can you give me a roadmap of how I'd go about implementing this app
"the Angular way"? Recall that I don't yet really know Angular, so I am
looking for something I can relate to.. but the more detail the better. I
am trying to figure out how much work will be involved.
- For example... I presume I will have separate HTML for every page, but
do I use separate templates or HTML partials that are included elsewhere?
..
- Will I use a single business logic JS file or many separate JS
files, like one for every page?
- What will I miss if i find my way using JS and jQuery?
- Does my app in any way require "special" design, or can I work with
Angular incrementally as needed, and reach the same result as if I designed
everything upfront perfectly? i.e if I use Angular for step 1 only but use
JS for all other step, will I experience any trouble relating data from JS
to and from the way Angular does things?
Thanks!
--
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.