首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angularJS文本标签

angularJS文本标签
EN

Stack Overflow用户
提问于 2014-09-08 17:25:39
回答 1查看 107关注 0票数 0

我想要创建一个类似于“标记”的操作系统,它可以方便地处理包含随机内容的各种标记。我选择了使用角ui警告机制,所以我将其封装起来,得到了如下内容:

工厂

代码语言:javascript
复制
app.factory(
        'ObjectTag',
        function () {

            function ObjectTag() {
                this.tags = [];
            }

            ObjectTag.prototype = {
                hasTags: function () {
                    return( this.tags.length != 0);
                },
                addTag: function (msgText, objectId) {
                    this.tags.push({type: 'info', msg: msgText, encapsulatedId: objectId});
                },
                closeTag: function(index){
                    this.tags.splice(index, 1);
                },
                getTags: function () {
                    return this.tags;
                }
            };

            return (ObjectTag);
        });

还有一个指令

代码语言:javascript
复制
app.directive('objectTag', function () {
        return {
            restrict: 'E',
            require: '^objectTags',
            template: "<div ng-if='objectTags.hasTags()'><alert ng-repeat='tag in objectTags.getTags()' type='{{ tag.type }}' close='objectTags.closeTag($index)'>{{ tag.msg }}</alert></div>"
        }
    });

我就是这样用的:

代码语言:javascript
复制
<object-tag object-tags="objectTags"></object-tag>

还有这个在我的控制器里

代码语言:javascript
复制
$scope.objectTags = new ObjectTag();

我希望能够轻松地添加和删除标签。我的问题是,它们看起来不像我想让它们看的那样,我希望每个标记在另一个标签的右边浮动,它的大小就足以像这里的标记一样保存文本,相反,每个警报标记都显示在不同的行上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-08 18:24:01

您可以通过重写引导CSS来解决这个问题。我是display: inline-flex风格的特别粉丝。这是一个示例plnkr。您可以在cs-tics.com的优秀文章中了解更多有关它的内容。

以及相关的HTML/CSS:

代码语言:javascript
复制
<div class="alert alert-success alert-inline" role="alert">Well done!</div>
<div class="alert alert-info alert-inline" role="alert">Heads up!</div>
<div class="alert alert-warning alert-inline" role="alert">Warning!</div>
<div class="alert alert-danger alert-inline" role="alert">Oh snap!</div>

.alert-inline {
  display: inline-flex;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25729777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档