AngularJS绑定unsafe:javascript:void(0)当value是javascipt时:void(0)

时间:2014-09-24 10:39:46

标签: html angularjs

<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>

3 个答案:

答案 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>