如何确定View中的文本方向?

时间:2014-11-20 09:14:58

标签: angularjs angularjs-filter

我需要一个指令女巫确定方向文本并添加一个类为“rtl”或“ltr”,以便分配属性:

.rtl
{
  text-align: right;
  direction: rtl;
}
.ltr
{
  text-align: left;
  direction: ltr;
}


如何检查文本的对齐方式?

2 个答案:

答案 0 :(得分:4)

当您在视图中处理元素的文本时,通常过滤器比指令更有用:

app.filter('direction', function () {
  return function (text) {
    var rtlRegex = new RegExp('[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]+');
    var textalign = ( rtlRegex.test(text) ) ? 'rtl': 'ltr';
    return textalign;
  }
});

在视图中

<p ng-class="(item.text | direction)">{{item.text}}</p>

在CSS中定义:

.rtl {
    direction: rtl;
}

.ltr {
    direction: ltr;
}

答案 1 :(得分:0)

向body元素添加一个类/方向,然后将其添加到您的css文件中:

body.ltr .text-alignment {
  text-align: left !important;
}
body.rtl .text-alignment {
  text-align: right !important;
}

body.ltr .text-opposite-alignment {
  text-align: right !important;
}
body.rtl .text-opposite-alignment {
  text-align: left !important;
}

所以你需要在需要对齐的东西时添加类文本对齐:)

我们在项目中使用它,它就像一个魅力