Smart: AngularJs und inputs

Hallo Forum,

ich bin neu in der angularjs-Welt. Ich möchte gerne wissen, ob man ohne einen Controller einfach den Inhalt (Value) eines inputs auslesen könnte. Wie z.B.:

  
<div ng-app>  
    <input type="text" ng-model="input" name="input" value="a" /> A <br />  
    <input type="select" ng-model="select">  
       <option>1</option>  
       <option>2</option>  
       <option>3</option>  
    </inpt>  
</div>  

Gruß

  1. Tach!

    Ich möchte gerne wissen, ob man ohne einen Controller einfach den Inhalt (Value) eines inputs auslesen könnte.

    Was ist das Ziel der Übung?

    Wie z.B.:

    <div ng-app>

    <input type="text" ng-model="input" name="input" value="a" /> A <br />
        <input type="select" ng-model="select">
           <option>1</option>
           <option>2</option>
           <option>3</option>
        </inpt>
    </div>

      
    Was genau soll man daraus erkennen? Willst du einfach nur einen Controller sparen? So schwierig ist es nun auch wieder nicht, einen Controller zu erstellen.  
      
    Prinzipiell gibt es auch noch Direktiven, die man als Attribut in Elemente schreibt, und die dann auf den Inhalt der Elemente oder deren Umgebung zugreifen kann. Oder auch Direktiven, die selbst Elemente sind. Ob das aber sinnvoll ist und dein Anwendungsfall der Philosophie von AngularJS entspricht, sei mal dahingestellt. Und es ist deutlich aufwendiger, als einen Controller zu verwenden.  
      
      
    dedlfix.
    
    1. @@dedlfix:

      nuqneH

      Ob das aber sinnvoll ist und dein Anwendungsfall der Philosophie von AngularJS entspricht, sei mal dahingestellt.

      Das sei mal nicht dahingestellt, sondern ist der Kern der Sache.

      Wann immer man gegen ein Framework arbeitet, ist es besser, das Framework gar nicht erst einzusetzen.

      Egal, ob es sich dabei um JavaScript-, CSS-, PHP-, Java- oder was auch immer für Frameworks handelt.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. Tach!

        Ob das aber sinnvoll ist und dein Anwendungsfall der Philosophie von AngularJS entspricht, sei mal dahingestellt.
        Das sei mal nicht dahingestellt, sondern ist der Kern der Sache.

        Der Kern der Sache ist, dass ich den Kern der Sache noch nicht erkannt habe, weil die Fragestellung zu allgemein war. Ich bleibe bei meiner Aussage, denn ich formulierte das so, weil aus meiner Sicht immer noch offen ist, welcher Weg für den Anwendungsfall geeignet ist. Und demzufolge auch, ob der mit oder gegen das Framework arbeitet.

        dedlfix.

  2. Hallo,

    ein controller zu "bauen" ist an dieser Stelle realtiv aufwendig, weil die komplette Kodierung ist bereits in JQuery erfolgt. Ich möchte mich nur hier und da einige angularjs methoden einzusetzen, ohne dabei etwas gravierendes an den Code ändern zu müssen. Andererseits war ich auch interessiert, ob so wtwas überhaupt möglich ist.

    Gruß

    1. Tach!

      ein controller zu "bauen" ist an dieser Stelle realtiv aufwendig, weil die komplette Kodierung ist bereits in JQuery erfolgt.

      Dann ist es wohl eher nicht der Controller, sondern du weißt nicht, wie du effektiv und effizient das vorhandene jQuery-Zeugs einbinden sollst. Ich wüsste auch nicht, wie du einen Scope ohne einen Controller zu den Eingabe-Elementen bringen möchtest. Auf der anderen Seite musst du ja die Werte im Code auch wieder auslesen können, und dazu brauchst du einen Scope.

      Ohne Controller gehen nur noch Direktiven, da musst du dann aber alles zu Fuß machen und gegebenenfalls deine eigenen Attribute erfinden. Die ng-Attribute zu verwenden wäre sozusagen Missbrauch und auch verwirrend. Du hast dann keinen Vorteil von AngularJS, weil du das auf diese Weise einfacher mit jQuery hinbekommst.

      Ich möchte mich nur hier und da einige angularjs methoden einzusetzen, ohne dabei etwas gravierendes an den Code ändern zu müssen.

      Für "hier und da" braucht man jeweils einen Controller. ngApp kann es nur einmal pro Seite geben und das muss alle "hier und da"s einschließen.

      AngularJs bietet keine Methoden an, die man mal hier und mal da und losgelöst von allem anderen nutzen kann. Man sollte es schon als Grundlage für seine SPA verwenden und eher bei Bedarf jQuery hinzustricken - falls man dazu nicht eine der vielen vorhandenen Angular-Bindings verwenden kann (AngularStrap zum Beispiel).

      Wenn du nichts gravierendes ändern möchtest, sollte deine Geschäftslogigk bereits in Funktionen stecken, die selbständig aus den übergeben Parametern ein Resultat erzeugen, ohne sich auf irgedwelche Gegebenheiten außerhalb ihrer {}-Klammern zu beziehen. Dann kannst du diese auch recht problemlos aus den AngularJS-Controllern ansprechen. Hast du hingegen alles mit jQuery durchsetzt, wird es mit dem "hier und da" recht schwer werden. Nimm dir dann lieber mal ein anderes Projekt zum Angular-Üben.

      dedlfix.

      1. Hi,

        vielen Dank.

        Gruß