【问题标题】:Dynamically Turn Off and On URL formatting动态关闭和打开 URL 格式
【发布时间】: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>

【问题讨论】:

标签: css angularjs ng-class


【解决方案1】:

已编辑 如果你真的需要它成为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,如果不是,则显示为纯文本。如果表达式为真,它基本上会放置类 btnbtn-link

【讨论】:

  • 好的,你确实给了我一个提示。我可以动态添加使用“btn btn-link”类,它基本上看起来像 。我将编写一个 plunker 并将其放在这里。
  • 是的!我刚刚编辑了我的答案。我虽然你会推断我写的内容,但是,无论如何......对不起,在这里:)
  • 好的!现在这是一个答案!谢谢!
  • 感谢@Toddsden 的编辑建议。你是对的!
  • 我觉得效果很好,我只需要在上面添加一个工作副本!
猜你喜欢
相关资源
最近更新 更多
热门标签