<a href="#/search?query={{address}}" ng-repeat="address in addresses">
{{address}}
</a>
generiert Links, die nicht URL-codiert sind, wenn ich das richtig verstehe. Was ist der richtige Weg, um zu codieren #/search?query={{address}}
?
Beispieladresse ist 1260 6th Ave, New York, NY
.
#/search?query=undefined
wennaddress
es nicht definiert ist. Wenn dies nicht der Fall ist, finden Sie unten eine modifizierte Lösung unter stackoverflow.com/a/31559624/179014 .$locationProvider
Ebene zu konfigurieren ?Die Lösung von @ Tosh wird zurückgegeben,
#/search?query=undefined
wenn sie nichtaddress
definiert ist<a ng-href="#/search?query={{address | escape}}">
Wenn Sie stattdessen eine leere Zeichenfolge für Ihre Abfrage erhalten möchten, müssen Sie die Lösung auf erweitern
var app = angular.module('app', []); app.filter('escape', function() { return function(input) { if(input) { return window.encodeURIComponent(input); } return ""; } });
Dies wird zurückgegeben,
#/search?query=
wennaddress
es nicht definiert ist.quelle
undefined
verwenden Sie diese -app.filter('escape', () => (input) => input !== undefined ? window.encodeURIComponent(input) : '');
Sie können den encodeUri-Filter verwenden: https://github.com/rubenv/angular-encode-uri
Fügen Sie Ihrem Projekt angle-encode-uri hinzu:
bower install --save angular-encode-uri
Fügen Sie es Ihrer HTML-Datei hinzu:
<script src="bower_components/angular-encode-uri/dist/angular-encode-uri.min.js"></script>
Verweisen Sie darauf als Abhängigkeit für Ihr App-Modul:
angular.module('myApp', ['rt.encodeuri']);
Verwenden Sie es in Ihren Ansichten:
<a href="#/search?query={{address|encodeUri}}">
quelle
Toshs Antwort hat die Filteridee genau richtig. Ich empfehle es einfach so zu machen. Wenn Sie dies tun, sollten Sie jedoch "ng-href" anstelle von "href" verwenden , da das Befolgen von "href" vor dem Auflösen der Bindung zu einem fehlerhaften Link führen kann.
Filter:
'use strict'; angular.module('myapp.filters.urlEncode', []) /* * Filter for encoding strings for use in URL query strings */ .filter('urlEncode', [function() { return window.encodeURIComponent; }]);
Aussicht:
<a ng-href="#/search?query={{ address | urlEncode }}" ng-repeat="address in addresses"> {{address}} </a>
quelle
Dies ist ein funktionierendes Codebeispiel:
app.filter('urlencode', function() { return function(input) { return window.encodeURIComponent(input); } });
Und in der Vorlage:
<img ng-src="/image.php?url={{item.img_url|urlencode}}"
quelle