AngularJS를 사용하여 url 인코딩 앵커링크를 생성하는 방법
<a href="#/search?query={{address}}" ng-repeat="address in addresses">
{{address}}
</a>
올바르게 이해하면 URL 인코딩되지 않은 링크가 생성됩니다.올바른 부호화 방법은 무엇입니까?#/search?query={{address}}?
주소의 예는 다음과 같습니다.1260 6th Ave, New York, NY.
네이티브를 사용할 수 있습니다.encodeURIComponentjavascript로.스트링 필터로 만들어 활용할 수도 있습니다.
여기 만들기의 예가 있다.escape필터링을 실시합니다.
js:
var app = angular.module('app', []);
app.filter('escape', function() {
return window.encodeURIComponent;
});
html:
<a ng-href="#/search?query={{address | escape}}">
(갱신: Karlies의 답변에 적응하여ng-href평범하지 않고href)
@Tosh의 솔루션은 반환된다.#/search?query=undefined한다면address정의되어 있지 않다
<a ng-href="#/search?query={{address | escape}}">
쿼리 대신 빈 문자열을 가져오려면 솔루션을 다음과 같이 확장해야 합니다.
var app = angular.module('app', []);
app.filter('escape', function() {
return function(input) {
if(input) {
return window.encodeURIComponent(input);
}
return "";
}
});
이것은 돌아올 것이다.#/search?query=한다면address정의되어 있지 않습니다.
encodeUri 필터를 사용할 수 있습니다.https://github.com/rubenv/angular-encode-uri
프로젝트에 angular-encode-uri를 추가합니다.
bower install --save angular-encode-uriHTML 파일에 추가합니다.
<script src="bower_components/angular-encode-uri/dist/angular-encode-uri.min.js"></script>앱 모듈에 대한 종속성으로 참조:
angular.module('myApp', ['rt.encodeuri']);뷰에서 사용:
<a href="#/search?query={{address|encodeUri}}">
Tosh의 답변은 필터 아이디어를 정확히 가지고 있습니다.저는 그렇게 하는 것을 추천합니다.단, 이 경우 바인딩이 해결되기 전에 "href"를 따라가면 링크가 불량해질 수 있으므로 "href"가 아닌 "ng-href"를 사용해야 합니다.
필터:
'use strict';
angular.module('myapp.filters.urlEncode', [])
/*
* Filter for encoding strings for use in URL query strings
*/
.filter('urlEncode', [function() {
return window.encodeURIComponent;
}]);
표시:
<a ng-href="#/search?query={{ address | urlEncode }}" ng-repeat="address in addresses">
{{address}}
</a>
동작 코드의 예를 다음에 나타냅니다.
app.filter('urlencode', function() {
return function(input) {
return window.encodeURIComponent(input);
}
});
템플릿에서 다음을 수행합니다.
<img ng-src="/image.php?url={{item.img_url|urlencode}}"
언급URL : https://stackoverflow.com/questions/14512583/how-to-generate-url-encoded-anchor-links-with-angularjs
'programing' 카테고리의 다른 글
| ReactJS 부트스트랩네바 및 라우팅이 함께 동작하지 않음 (0) | 2023.02.25 |
|---|---|
| Angular - ng-repeat 순서를 만들 수 없습니다.작업별 (0) | 2023.02.25 |
| Spring Batch에서 ItemReader에서 작업 매개변수에 액세스하는 방법은 무엇입니까? (0) | 2023.02.25 |
| 로그인 후 Spring Boot의 H2 콘솔에 공백 화면이 표시되는 이유는 무엇입니까? (0) | 2023.02.25 |
| 어레이 내의 오브젝트 중 하나를 불변으로 갱신합니다. (0) | 2023.02.25 |