动态关闭和打开网址格式

时间:2016-11-22 22:49:22

标签: css angularjs ng-class

在AngularJS中,您可以使用ng-class属性为元素动态添加类格式。我想动态更改某些文本是以纯文本显示还是链接超链接。

我也在使用bootstrap,但<a>并未被定义为类似h1-h5的类。

例如,对于<h1>,我可以在AngularJS中执行此操作:

<div ng-class="'h1'">This will be displayed as a heading 1.</div>

但这并不能显示为网址:

<div ng-class="'a'">This will be displayed as text, but I want it to be a URL.</div>

所以在Asiel Leal Celdeiro的答案之后,我只需要在这里添加工作代码:

&#13;
&#13;
<!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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

<强> EDITED 如果你真的需要它是div,你可以使用:

<!--myController: angular controller on this partial view-->
<!--isURL: indicate whether this text is a URL or not-->

<div ng-class="{'btn btn-link':myController.isURL}">{{myController.text}}</div>

或者如果您可以使用abutton,则可以使用:

<a ng-class="{'btn btn-link':myController.isURL}">{{myController.text}}</a>

<button ng-class="{'btn btn-link':myController.isURL}">{{myController.text}}</button>

如果myController.isURL表达式在按角度评估时为真,则所有这些都将显示为URL;如果不是,则显示为纯文本。基本上,如果表达式为真,则将类 btn btn-link 放入。