如何在Angularjs中的控制器内创建href链接?

时间:2016-08-29 08:02:55

标签: html angularjs

如果未验证手机号码,我会显示一条Flash错误消息。

Flash消息为"未验证手机号码。点击此处验证"

但我希望用"点击此处显示相同的错误消息"作为超链接,它会将我重定向到页面顶部。

if (res.json.response.mobilevalidated == false) {

      FlashService.Error("Mobile number not validated." + (<a href="#/otp"> click here </a> ) +" to validate", false);

      $scope.disabled = function() {

          $scope.model.disabled = true;
          $scope.title = "Cannot access until mobile number is validated.";
      }
   } else {
        $scope.model.disabled = false;
    }

如何在控制器中使用html标签?因为我的错误信息是动态的。

3 个答案:

答案 0 :(得分:0)

您正在寻找的是使用Angular中包含的$sce。请查看此处的文档:https://docs.angularjs.org/api/ng/service/ $ sce

您基本上在控制器中将HTML字符串定义为受信任,如下所示:$sce.trustAsHtml(<a href="http://stackoverflow.com">Stackoverflow</a>")并使用ng-bind-html <span ng-bind-html="mySuperCoolLink"></span>将其绑定到模板中。

上面提到的文档中有一个例子。

修改

您的函数FlashService.Error收到无效字符串。但是,只有在HTML链接存储在变量中时才使用字符串连接来包含HTML链接。因此,您必须执行以下操作之一:

A)
FlashService.Error("Mobile number not validated. <a href=\"#/otp\"> click here </a> ) to validate", false);

or B)
var link = "(<a href=\"#/otp\"> click here </a> )";
FlashService.Error("Mobile number not validated." + link + " to validate", false);

在你提供的代码中,JS引擎会识别圆括号,因为它们是有效的JS,但不是尖括号(我忘了它们的名字......)。

编辑2: 普兰克:https://plnkr.co/edit/WzzWtnJW98u3e7eTLn2q?p=preview

答案 1 :(得分:0)

使用ng-include
Js 添加

$scope.includePath = function () {
   `templateUrl="..../your template path"`  
};

<强> HTML

<div ng-include="includePath" > New html is here </div>

在这种情况下,如果您想要点击活动,可以使用<button>

答案 2 :(得分:0)

<强> HTML

    <div ng-class="{ 'alert': flash, 'alert-success': flash.type === 'success', 'alert-danger': flash.type === 'error', 'selected': hlink}" ng-click = "linking()" ng-if="flash" ng-bind="flash.message" style="margin-top: 20px; ">            
  </div>

我的控制器

if (res.json.response.mobilevalidated == false) {

         $scope.linking = function(){
              $location.path('/otp');
         }

         $scope.hlink =" click here";

         FlashService.Error("Mobile number not validated." + $scope.hlink +" to validate" , false);

      }