인코딩을 호출하려면 어떻게 해야 합니까?각도에서 본 요산 성분JS 템플릿?
각진 JS 템플릿에 블록이 있습니다.
<a href="#/foos/{{foo.id}}">{{foo.name}}</a>
단, foo.id 속성에는 펑키 문자('/')가 포함될 수 있습니다.나는 다음과 같은 것을 하고 싶다.
<a href="#/foos/{{encodeURIComponent(foo.id)}}">{{foo.name}}</a>
효과가 없다고요?어떻게 하면 고칠 수 있을까요?
이 필터를 생성하면encodeURIComponent
예.
var app = angular.module('app', []);
app.filter('encodeURIComponent', function() {
return window.encodeURIComponent;
});
그럼 하세요
<a href="#/foos/{{foo.id | encodeURIComponent}}">{{foo.name}}</a>
실행 예: http://jsfiddle.net/YApdK/
@aj-richardson의 추천을 고려하여 @jimr의 코드를 수정.
표현식 내의 필터를 사용하여 데이터를 렌더링하기 전에 데이터 형식을 지정할 수 있습니다.
필터를 만듭니다.
var app = angular.module('app', []);
app.filter('encodeURIComponent', function($window) {
return $window.encodeURIComponent;
});
그런 다음 필터를 적용합니다.
<a ng-href="#/foos/{{foo.id | encodeURIComponent}}">{{foo.name}}</a>
ng-href
대신 사용됩니다.href
링크가 Angular에 의해 렌더링되는지 확인합니다.클릭하기 전에 JS를 선택합니다.$window
를 사용하는 대신 필터에 주입됩니다.window
직접적으로.global을 참조해 주세요.
window
을 통해$window
테스트용으로 덮어쓰거나 제거하거나 조롱할 수 있습니다.
참고 자료:
잘못된 형식의 URI 오류를 처리하려면 필터 함수를 작성한 후 try-catch를 사용하여encodeURIComponent
.
var app = angular.module('app', []);
app.filter('encodeURIComponent', function($window) {
return function (path) {
try {
return $window.encodeURIComponent(path);
} catch(e) {
return path;
}
}
});
언급URL : https://stackoverflow.com/questions/16630471/how-can-i-invoke-encodeuricomponent-from-angularjs-template
'source' 카테고리의 다른 글
워드프레스와 같은 CodeIgniter의 템플릿 시스템? (0) | 2023.03.06 |
---|---|
JUnit 테스트 중 응용 프로그램/CommandLineRunner 클래스 실행 방지 (0) | 2023.03.06 |
WordPress에 "No input file specified" 오류가 있습니다. (0) | 2023.03.01 |
리액트 훅으로 입력 처리 (0) | 2023.03.01 |
Angular에서 앱 버전을 표시하는 방법 (0) | 2023.03.01 |