【发布时间】:2016-11-23 11:33:51
【问题描述】:
在 AngularJS 中,您可以使用 ng-class 属性为元素动态添加类格式。我想动态更改某些文本是显示为纯文本还是链接超链接。
我也在使用引导程序,但 <a> 没有定义为像 h1 - h5 这样的类。
例如,对于<h1>,我可以在 AngularJS 中执行此操作:
<div ng-class="'h1'">This will be displayed as a heading 1.</div>
但这无法显示为 url:
<div ng-class="'a'">This will be displayed as text, but I want it to be a URL.</div>
所以在 Asiel Leal Celdeiro 的回答之后,我只需要在此处添加工作代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AngularJS Example</title>
<!-- JQuery for Bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- AngularJS -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="MyCtrl">
<p ng-class="{'btn btn-link': isURL}">This can be plain text or formated like a URL.</p>
<br>
<label>
<input type="checkbox" ng-model="isURL">
Make it look like a link
</label><br>
</div>
<script>
var app = angular.module('myApp',[]);
app.controller('MyCtrl', ['$scope', function($scope) {
$scope.isURL= false;
}]);
</script>
</body>
</html>
【问题讨论】:
-
您是否尝试过使用
ngSwitch属性? docs.angularjs.org/api/ng/directive/ngSwitch基于 ng-switch 构建指令并不可怕。但是,我简直不敢相信我是历史上第一个想要动态关闭和打开 URL 样式的人。