denke ich, das Problem hier ist, dass die meisten der Winkel Beispiele verfügbar sind von der " Hallo Welt "Vielfalt und so zeigen sie Daten direkt vom Controller abrufen. Das Problem ist, dass AngularJS out of the box nicht wirklich eine Business-Logik-Schicht selbst hat, und ich denke, dass die meisten Leute, die eine solche Schicht hinzugefügt haben, zu beschäftigt sind, um Beispiele aufzustellen.
Die Art, wie ich dies tun würde, ist ein "Master" -Service, der alle verschiedenen Datentypen entweder im Run-Block oder langsam, wenn der Benutzer die App navigiert, je nach Ihren Bedürfnissen erhalten kann. Dann würde ich im Falle einer Direktive einen Verweis auf die zutreffende Untersammlung in der Routenauflösung (resolve property) oder den isolierenden Bereich angeben.
Alternativ kann der Controller nach den Daten fragen, indem er masterService.getCollection($scope.collectionName)
oder etwas ähnliches anruft, aber wenn Sie das tun, stoßen Sie auf das Problem, dass masterService
die bestimmte Sammlung noch nicht haben kann, und dann müssen Sie Ihren Controller überfluten mit all dem Versprechen, die Dinge zu lösen, als ob es die Verantwortung eines Controllers wäre, damit umzugehen.
Sie könnten dies vermeiden, indem Sie in der Ansicht an masterService.collections[$scope.collectionName]
binden, wodurch der Controller nur die Auflistung der $ scope- oder controllerAs-Variable freigibt und der masterService immer noch dafür verantwortlich ist, die Daten abzurufen und verfügbar zu machen.
Ja, Sie können. Versuchen Sie es einfach und kommen Sie hierher zurück, wenn Sie ein konkretes Problem haben. –