ran*_*guy 73 anchor urlencode angularjs
<a href="#/search?query={{address}}" ng-repeat="address in addresses">
{{address}}
</a>
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,会生成非url编码的链接.编码的正确方法是#/search?query={{address}}什么?
示例地址是1260 6th Ave, New York, NY.
Tos*_*osh 104
您可以encodeURIComponent在javascript中使用本机.此外,您可以将其设置为字符串过滤器以使用它.
以下是制作escape过滤器的示例.
JS:
var app = angular.module('app', []);
app.filter('escape', function() {
return window.encodeURIComponent;
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<a ng-href="#/search?query={{address | escape}}">
Run Code Online (Sandbox Code Playgroud)
(更新:适应Karlies的答案,ng-href而不是简单的使用href)
asm*_*ier 21
#/search?query=undefined如果address未定义,@ Tosh的解决方案将返回
<a ng-href="#/search?query={{address | escape}}">
Run Code Online (Sandbox Code Playgroud)
如果您希望为查询获取空字符串,则必须将解决方案扩展到
var app = angular.module('app', []);
app.filter('escape', function() {
return function(input) {
if(input) {
return window.encodeURIComponent(input);
}
return "";
}
});
Run Code Online (Sandbox Code Playgroud)
#/search?query=如果address未定义,则返回.
Rub*_*sch 14
您可以使用encodeUri过滤器:https://github.com/rubenv/angular-encode-uri
将angular-encode-uri添加到您的项目中:
bower install --save angular-encode-uri
将其添加到您的HTML文件:
<script src="bower_components/angular-encode-uri/dist/angular-encode-uri.min.js"></script>
将其作为app模块的依赖项引用:
angular.module('myApp', ['rt.encodeuri']);
在您的视图中使用它:
<a href="#/search?query={{address|encodeUri}}">
Kar*_*ung 12
Tosh的回答是过滤器的想法完全正确.我建议就这样做.但是,如果这样做,则应使用"ng-href"而不是"href",因为在绑定结束之前跟随"href"会导致链接错误.
过滤:
'use strict';
angular.module('myapp.filters.urlEncode', [])
/*
* Filter for encoding strings for use in URL query strings
*/
.filter('urlEncode', [function() {
return window.encodeURIComponent;
}]);
Run Code Online (Sandbox Code Playgroud)
视图:
<a ng-href="#/search?query={{ address | urlEncode }}" ng-repeat="address in addresses">
{{address}}
</a>
Run Code Online (Sandbox Code Playgroud)
这是一个有效的代码示例:
app.filter('urlencode', function() {
return function(input) {
return window.encodeURIComponent(input);
}
});
Run Code Online (Sandbox Code Playgroud)
在模板中:
<img ng-src="/image.php?url={{item.img_url|urlencode}}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88684 次 |
| 最近记录: |