angularJS文本标记
angularJS text tags
我想创建一个类似于"标记"的操作系统,它有助于处理包含随机内容的各种标记。我选择了使用角度ui警报机制,所以我把它包装了一下,得到了这样的东西:
工厂:
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);
});
和指令:
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>"
}
});
我是这样使用的:
<object-tag object-tags="objectTags"></object-tag>
在我的控制器中也是这样:
$scope.objectTags = new ObjectTag();
我希望能够轻松添加和删除标签。我的问题是,它们看起来不像我希望的那样,我希望每个标签都浮动到另一个标签的右侧,并且其大小刚好足以容纳文本,就像这里的标签一样,相反,每个警报标签都显示在不同的行上。
您可以通过覆盖Bootstrap CSS以多种方式解决此问题。我特别喜欢display: inline-flex
风格。下面是一个plnkr示例。你可以在css-tricks.com.的这篇优秀文章中阅读更多关于它的信息
以及相关的HTML/CSS:
<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;
}
相关文章:
- 使用angularjs验证文本框中的电子邮件
- 根据输入文本按元素排序,AngularJS
- 在AngularJS Dropdownlost中设置默认文本选项
- 如何在angularjs中更改文本框类,同时键入和检查条件
- angularjs 使用什么事件从文本输入中获取值
- 在AngularJS中过滤-html标签中的文本
- angularjs文本区域-如何使其与angularjs下拉列表中的选定值保持同步
- 检测angularjs中的输入文本长度
- 从 AngularJS 将文本插入 HTML
- 在 AngularJs 中触发文本框的复选框
- 如何使用 Angularjs 使流式处理更改输入中输入的文本
- AngularJS - 从字符串数组中连续更改文本
- AngularJS 在文本区域中渲染 HTML
- Angularjs:如何捕获
标签中的文本并在我的控制器中使用它 - AngularJS不断关注文本输入
- 如何做name=“;技能[]”;在angularjs中输入类型文本
- Angularjs观察用户在输入文本中键入逗号的情况
- 将表中的值传递给输入文本Angularjs
- 如何使用angularjs在剑道网格过滤器文本框中应用电话号码掩码
- 如何更改每个附加文本Angularjs