Hannes Weninger: AngularJS und jQuery

Hallo,

ich brauche in meiner AngularJS jquery-ui weil ich Tabellen- Reihen reodern will aber ich habe ein Problem beim inkludieren der JS Libs:

Mein Fiddle Beispiel

Das Problem ist die Dependency Injection von ['ui'] - ui wird nicht gefunden o.ä. Weiß jemand wie man das lösen kann?

Vielen Dank! Hannes

  1. Tach!

    ich brauche in meiner AngularJS jquery-ui weil ich Tabellen- Reihen reodern will aber ich habe ein Problem beim inkludieren der JS Libs:

    Mein Fiddle Beispiel

    Das Problem ist die Dependency Injection von ['ui'] - ui wird nicht gefunden o.ä.

    ui ist ja auch kein Angular-Modul. Du kannst nur solche injizieren. Du brauchst entweder einen Wrapper, der eine Angular-API drumherumbaut (hab ich jetzt nicht recherchiert, ob es da einen für Sortable gibt) oder du verwendest den Sortierer unabhängig von Angular, beziehungsweise schreibst dir selbst den notwendigen Code, um mit Angular zu interagieren. Soweit der erste Gedanke aus dem Bauch heraus.

    Weiß jemand wie man das lösen kann?

    Während des Tippens obigen Absatzes hat sich dann doch noch der Kopf zugeschaltet und gemeint: Es kann gut sein, dass sich die beiden auch gar nicht miteinander verheiraten lassen. Nachfolgend einige theoretische Überlegungen, ohne diese auf Übereinstimmung mit der Praxis verglichen zu haben. Du baust anzunehmenderweise deine Tabelle mit ngRepeat auf. Und nun setzt du darauf einen Sortiermechanismus, von dem ngRepeat gar keine Ahnung hat, dass er existiert. ngRepeat wird bei nächstbester Gelegenheit seine ihm bekannte Reihenfolge wieder herstellen. Den Konflikt zwischen beiden halte ich für nicht auflösbar. Entweder muss der Sortierer auf das Sortieren und umgeordnete Ausgeben verzichten oder ngRepeat muss Teile seiner Arbeitsweise aufgeben. Von einem von beiden bleibt am Ende nicht viel übrig, falls da jemand einen Wrapper geschrieben hat.

    Was tun, sprach Zeus? Nun, du könntest dich darauf beschränken, in den Tabellenköpfen Bedienelemente unterzubringen, die eine Variable (zum Beispiel im Scope vom Controller) umschreiben, in der festgehalten wird, wonach sortiert werden soll. Diese Variable schaut sich der Filter an (oder bekommt den Wert als Argument übergeben), den das ngRepeat an der Auflistung der Daten vorfindet (… ng-repeat="item in items | sortierfilter:sortierkriterium" …).

    dedlfix.