<a ng-attr-href="{{page==1 && 'javascript:void(0)' || '#a/'+tid+'/'+(page-1)}}">Prev</a>
我希望在page = 1
时得到它<a href="javascript:void(0)">Prev</a>
但结果是:
<a href="unsafe:javascript:void(0)">Prev</a>
答案 0 :(得分:5)
在 a 上使用 ng-click ,并将 $ event 传递给您的函数。
<a href="#" ng-click="yourFunction($event);">Click</a>
在您的功能中执行以下操作
$scope.yourFunction = function(e) {
e.preventDefault();
};
答案 1 :(得分:3)
在ng-click
<a>
<a href="" ng-click="go(tid)">
在控制器中
app.controller('whatever', function($scope, $location){
$scope.go = function(id){
if($scope.page == 1) {
return;
}
var url = '/a/' + id + '/' + ($scope.page - 1);
$location.url(url);
}
});
这样您也可以将逻辑移出模板。
答案 2 :(得分:2)
新角度,您必须将javascript白名单
angular.module("app", [])
.config(['$compileProvider', function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript):/);
}]);
或
<a href="#" ng-click="foo($event);">Click</a>
$scope.foo = function(e) {
e.preventDefault();
};
或
<a ng-click="foo($event);">Click</a>