Ankündigung

Einklappen
Keine Ankündigung bisher.

angular.js scopes

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • angular.js scopes

    Hallo,

    ich benötige mal eure Hilfe. Und zwar habe ich ein accordiondemo - welches ich mit angular.js scopes befülle.

    Code:
     <div class="ng-scope" ng-app="myapp" >
    
    <div ng-controller="AccordionDemoCtrl">
    <button type="button" ng-click="goback()" class="btn btn-default" aria-label="Left Align"> <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>
    
    </button>
    <label ng-repeat="rl in history">,{{rl}}</label>
    <div>
    <h2>{{currentrule.title}}</h2>
    
    </div>
    <div>
    <h4>{{currentrule.description}}</h4>
    
    </div>
    <accordion close-others="oneAtATime">
    <accordion-group ng-repeat="selection in currentrule.selection" heading={{selection.title}}>{{selection.descriptio n}}
    <div>
    <button type="button" ng-click="changerule(selection.nextrule,true)" class="btn btn-default">weiter</button>
    </div>
    </accordion-group>
    </accordion>
    <h2>Ergebnis: {{totalprice}} </h2>
    
    </div>
    
    
    </div>
    Als weiteres habe ich eine js, Datei , in welcher die weiteren Accordions gefüllt werden, je nach Auswahl - Soweit so gut, das funktioniert auch alles. Meine Frage ist nun, ich möchte gerne Zeilenumbrüche in den Text (Descriptions) bringen - aber leider ohne Erfolg.

    hier die js - Auszugsweise....

    Code:
    function AccordionDemoCtrl($scope) {
    
    $scope.totalprice = ""
    
    $scope.history = []
    $scope.currentrule = null
    
    
    //edit your rules here
    
    $scope.rules = {
    root: {
    title: "Welche Form passt zu meiner Figur?",
    id: "regel1",
    price: "",
    description: "Sie haben hier einen Text, der dann evtl. aus 3 oder 4 Absätzen bestehen soll ?",
    selection: [{
    title: "Form1",
    description: "Hier die Beschreibung Form1.",
    nextrule: "regel2"
    }, {
    title: "Form 2 mit Team",
    description: "Es gibt mehrere Bsp. , Description 2 .",
    nextrule: "regel2"
    }, {
    title: "Team",
    description: "Hier Die 3. Beschreibung",
    nextrule: "regelx"
    }]
    
    },
    Nun möchte ich in den jeweiligen Descriptions Zeilenumbrüche reinbringen, damit es übersichtlicher wird.
    Wie kann ich das machen?

    Bisherige Versuche:
    Mit "Text \r\n weiter" oder "Text "+'\r'+'\n' + "weiter...." führt zu keinem Erfolg.
    Auch mit reinem HTML Code dazwischen - bringt auch nichts, wird nur als Klartext dargestellt.Also <br /> dazwischen steht dann auch als <br /> dort.


    des weiteren soll dann statt einem Preis ein Text kommen, auch dieser sollte sich mit Zeilenumbrüchen zusammensetzen, Als Zahl geht das , die werden addiert.

    Code:
    $scope.changerule = function (to, history) {
    var ruleID, _i, _len, _ref;
    if ($scope.rules[to] !== null) {
    if (history != null) {
    $scope.history.push(to);
    }
    $scope.currentrule = $scope.rules[to];
    $scope.totalprice = "";
    _ref = $scope.history;
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    ruleID = _ref[_i];
    
    $scope.totalprice = $scope.totalprice + $scope.rules[ruleID].price;
    
    // Das wäre die Stelle, an der ich auch noch den Zeilenumbruch haben möchte..
    
    }
    $scope.currentrule = $scope.rules[to];
    $scope.$apply();
    }
    return true;
    };


    Wer kann mir dabei helfen?
    Vielen Dank schonmal im Voraus.

    Gruß Reinhardt

  • #2
    Da gibt es mehrere Möglichkeiten. Hast du mal mit dem CSS-Attribut "white-space" experimentiert?

    Kommentar


    • #3
      Hallo rkr,

      nein, ich hatte lediglich mit den paar Versuchen gemacht, die ich geschrieben habe, sobald ich ein <br> oder ein \r\n einsetze in den String - wird ignoriert oder das <br> steht als text lesbar mit drin in der description - ich versuche es mal, dass ich dem div dieses attribut mal gebe.

      Ok, hab es eben getestet, white-space: pre-wrap - > da steht das <br> auch noch als Text im Text.

      Danke erstmal.
      Ich teste weiter rum....

      Reinhardt

      Kommentar


      • #4
        Wie meinst du das? Bei mir klappt das ganz wunderbar:
        https://jsfiddle.net/ycobkpb1/
        https://jsfiddle.net/ycobkpb1/1/

        Kommentar


        • #5
          Hallo rkr,

          super, also mit pre-line funktioniert es. DANKE!


          das war die Lösung, so mach ich es dann überall rein... Hat mir sehr geholfen

          Reinhardt

          Kommentar


          • #6
            Hallöchen,

            eine weitere Lösung wäre der Einsatz von $sce (dev | min). Damit lässt sich u.A. HTML-Code als vertrauenswürdig einstufen und direkt ausgeben:

            - $sce example

            Bei Benutzereingaben ist natürlich Vorsicht geboten.

            Viele Grüße,
            lotti

            Kommentar


            • #7
              Hallo,

              jo, das ist auch eine super Lösung. Und es gibt hier keine Benutzereingaben, alle Texte stehen in einer JS-Datei hart drin - die abgearbeitet werden.
              Es werden Accordions aufgeblendet und dort verschiedene Texte angezeigt, und diese wollte ich eben übersichtlicher gestalten mit Zeilenumbrüchen und so.

              Hab es eben mal eingebunden - super!

              Gruß Reinhardt

              Kommentar

              Lädt...
              X