如果未验证手机号码,我会显示一条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标签?因为我的错误信息是动态的。
答案 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);
}