2016-04-15 12 views
0

Ich versuche, einen Filter zu verwenden, die einen String umkehrt, ist dies mein Code:Filter Ausgabe in Angular

app.filter("revertir", function(){ 

    return function(input){ 
     var u = input.length-1; 

     console.log("ENTRA: "+input); 
     for(var i=0;i<input.length/2;i++){ 
      var temp = input[i]; 
      input[i] = input[u]; 
      input[u] = temp; 
      u--; 
     } 
     return input; 
    }; 
}); 

ich diesen Filter in mein Controller injizieren, und es ist richtig geworfen, aber ich bin nicht den Text umgekehrt bekommen; Es wird genau wie die Eingabezeichenfolge angezeigt.

Wo ist das Problem? Dieses genaue Skript zum Rückwärtsfahren funktioniert perfekt in einem Java-Testprogramm.

+0

JavaScript-Strings unveränderlich sind - Sie können die n-te Zeichen mit Array-Syntax _read_ kann, aber nicht _write_ zu ihm. – Alnitak

Antwort

0

ziemlich häufig:

var app = angular.module("MyApp", []); 

app.filter("reverse", function() { 
    return function(input) { 
    var result = ""; 
    input = input || ""; 
    for (var i=0; i<input.length; i++) { 
     result = input.charAt(i) + result; 
    } 
    return result; 
    }; 
}); 
2

Ein anderer Weg, es zu implementieren:

var app = angular.module("MyApp", []); 
 

 
app.filter("reverse", function() { 
 
    return function(input) { 
 
    return ((input || '').split('').reverse().join('')); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="MyApp"> 
 
    
 
    write here: <input ng-model="strIn" ng-init="strIn='Hello Wordl!'" /> 
 
    <p>output reversed : {{ strIn | reverse }}</p> 
 
    
 
</div>