Mit selben controller für alle CRUD-Operationen (Schienen-alike)

Habe ich eine eckige controller, holt eine Ressource, die auf die Bildung:

angular.module('adminApp')
  .controller('PropertiesCtrl', function ($log, $scope, Property, $location) {
    $scope.properties = Property.query()  
  });

Nun möchte ich hinzufügen, dass die Logik der controller in der Lage sein, um eine "Eigenschaft" Ressource:

angular.module('adminApp')
  .controller('PropertiesCtrl', function ($log, $scope, Property, $location) {
    $scope.properties = Property.query()  
    $scope.create = function(){
      //logic to create
    };
  });

Jedoch, wenn ich auf das Formular zum erstellen einer "Eigenschaft", ein unnötiger Aufruf von fetch alle Eigenschaften ersten. Wie kann ich diese vermeiden?


Mögliche Lösungen?

  1. Konnte ich erstellen Sie einen separaten controller, der speziell für die Schaffung von Eigentum, das nicht Holen der Eigenschaften. Allerdings wäre es einfacher, die Kapseln alle CRUD-Operationen für eine einzige Ressource, die unter einer einzigen Steuerung.
  2. Ich erstellen Sie eine Funktion zum abrufen aller Eigenschaften. Aber, meine index-Seite verwendet "Eigenschaften" direkt. Ich würde zunächst müssen die Daten abzurufen, ruft eine Methode aus und verwenden Sie die Daten (irgendwie?)
  • Ist dieser Schritt $Umfang.properties = Eigentum.query() notwendig?
  • Ich brauche, um die Eigenschaften auf meiner index-Seite. So ist es nur notwendig, in die index-Seite (die mit der PropertiesCntrl). Jedoch, wäre es nicht notwendig, in der Seite erstellen ...
  • Dann ist die erste option in Ihrer eigenen möglichen Lösungen wäre eine sinnvolle option.
  • die Sache mit meiner ersten Lösung ist, dass es würde bedeuten, dass die CRUD-Operationen für eine einzige Ressource würde gestreut werden, um verschiedene Controller ... cld gibt es einen besseren Weg?
  • Naja... Es ist nicht ungewöhnlich, dass eine Ansicht mit einer Liste der Elemente und eine andere Ansicht zum hinzufügen/Bearbeiten einer dieser Artikel... wäre Es ein problem wenn man 4 verschiedene Ressourcen interagieren mit dem server... es ist nicht ein problem zu haben mit mehreren Ansichten unter Verwendung der gleichen Ressource... Es ist schlimmer für die Logik von mehreren Seiten in einer einzigen Steuerung...
  • Sollten Sie feststellen, dass diese neueren Artikel hilfreich (es umfasst auch mehr in die Tiefe, die Fälle wie mit resolve Aussagen): scotch.io/tutorials/making-skinny-angularjs-Controller

InformationsquelleAutor Karan | 2013-08-25
Schreibe einen Kommentar