如何通过AngularJS设置dir属性的值。

12 浏览
0 Comments

如何通过AngularJS设置dir属性的值。

我想根据控制器内部的一些逻辑来设置元素的方向。所以,如果语言文件具有某个特定值,我想从"ltr"更改为"rtl"。我知道有一种通过ng-attr-的方式来设置HTML属性,但对于dir属性来说不起作用。我创建了一个JSFiddle来展示我的问题。问题是:

如何通过控制器设置dir属性?

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
    $scope.direct = "rtl";
}

0
0 Comments

问题的原因是无法通过AngularJS设置dir属性的值。解决方法是使用内联样式来设置方向,即style="direction:{{direct}}"。可以在这个链接上查看示例。

0
0 Comments

问题原因:在AngularJS中,如果想要设置元素的dir属性的值,可以使用一个简单的指令来实现。然而,这个问题的原因是在指令中如何正确设置dir属性的值。

解决方法:通过创建一个自定义指令来解决这个问题。在这个指令中,使用link函数来处理对应的逻辑。在link函数中,使用attrs.$observe来监听指令的属性值的变化。当属性值发生变化时,如果新值存在,就使用elem.attr方法来设置dir属性的值为新值,如果新值不存在,就使用elem.removeAttr方法来移除dir属性。

具体的代码如下:

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");
                }
            });
        }
    };
});

使用这个指令的方法是,在HTML中使用

来设置元素的dir属性的值。其中,direct是一个变量,可以根据具体的需求来设置。

这个问题的解决方法在下面的链接中有一个示例代码:http://jsfiddle.net/34ch4qef/1/

0
0 Comments

问题原因:使用AngularJS时,设置dir属性的值时不应该使用ng-attr-dir,而应该直接使用dir。

解决方法:只需将ng-attr-dir修改为dir即可。

解决代码示例:

可以点击以下链接查看问题的解决方案:

[Fiddle](http://jsfiddle.net/HB7LU/7371/)

0