You are looking for Isolate Scopes. They allow pretty much everything you are asking for. You should be using a service to "grab" the data, but a controller should be using the service.
In other words, a parent controller would load those 0,1,2 or 3 models and then pass each to an isolate scope. As an added bonus, if you really want it reusable, I would make your scope definition and controller logic such that a promise or object could be passed to the scope ( using $q.when works ). On Mon, Aug 24, 2015 at 6:32 PM, Mason Gup <[email protected]> wrote: > I used to do mostly WPF/WinForms development, and we're using mostly > Angular at my new company. I'm working on getting my head around the > Angular way to do things, and there's one part that I can't seem to find an > Angular equivalent or alternative for. > > In WPF, I can build a UI component for something that's used in multiple > places at multiple levels, and create it in code, passing an object to > display to it. In any interface I build that uses this, I can include zero, > one, or multiple of these components, and since they get created and passed > their data in the code for the parent object, it's clear what data they're > displaying and where it's coming from, with the child items having no > dependency on the parent item structure. > > I can't seem to find a clean way to do anything like this in Angular. I > can create a child Controller and attach it to a child item inside a parent > with the usual ngController directive, and even do several of them per > page, but I can't seem to find a good way to pass data to it from the > parent. Using ngInit seems to kind of make sense, as I can pass a > particular item on the parent $scope to a particular variable on the child > scope, but this is apparently not the Angular way, and I'm supposed to be > using a Service instead. > > But since Services are singletons, I don't understand how I can have 0, 1, > 2, or 3 child controllers and pass each of them data from a different > variable in the parent controller without introducing dependencies on the > parent in the child. I could create a service and have the parent item > store the data in it, and have the child controller retrieve it, but if I > had 3 copies of the same child controller, all displaying data from a > different object that the parent has, how would each one know what to get > from the service? > > -- > 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. > -- 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.
