如何通过AngularJS设置dir-Attribute的值

时间:2014-10-16 10:42:22

标签: html angularjs

我想根据控制器内部的一些逻辑设置body - 元素的方向。

因此,如果语言文件具有特定值,我想从" ltr"到" rtl"。

我知道ng-attr-通过dir有一种方式,但它不适用于<div ng-controller="MyCtrl"> <div ng-attr-dir="{{direct}}"> <p>Test</p> </div> </div> var myApp = angular.module('myApp',[]); function MyCtrl($scope) { $scope.direct = "rtl"; }

我做了一个setting HTML attributes来表明我的问题。问题是:

  

如何通过控制器设置dir-attribute?

{{1}}

4 个答案:

答案 0 :(得分:4)

只需使用dir,而不是ng-attr-dir

<div dir="{{direct}}"> 

<强> Fiddle

答案 1 :(得分:0)

可以通过一个简单的指令来完成:

myApp.directive("myDir", function() {
    return {
        link: function(scope, elem, attrs) {
            attrs.$observe("myDir", function(newval) {
                if( newval ) {
                    elem.attr("dir", newval);
                }
                else {
                    elem.removeAttr("dir");
                }
            });
        }
    };
});

将其用作:

<div my-dir="{{direct}}">

分叉小提琴:http://jsfiddle.net/34ch4qef/1/

答案 2 :(得分:0)

改为使用内联style="direction:{{direct}}"

http://jsfiddle.net/HB7LU/7373/

答案 3 :(得分:0)

您必须使用实际支持的ngAttr;)1.0的Angular版本。