Javascript 改变角度方向

Javascript 改变角度方向,javascript,angularjs,Javascript,Angularjs,我正在尝试以angular: Html <span class="sp-right"> <label> Number: </label> </span> 它工作得很好,但当我点击链接(ui路由器)并返回时,它变为原来的 有什么想法吗?我不知道您的要求是什么,但您不使用ngClass有什么原因吗 <div ng-class='whatClassIsIt(position)' ng-click='position

我正在尝试以angular:
Html

<span class="sp-right">
    <label>
        Number:
    </label>
</span>
它工作得很好,但当我点击链接(ui路由器)并返回时,它变为原来的

有什么想法吗?

我不知道您的要求是什么,但您不使用ngClass有什么原因吗

<div ng-class='whatClassIsIt(position)' ng-click='position = !position'>

您必须记住控制器中的状态(在您的情况下是方向),该控制器的级别(例如主体)不会被ui路由器替换,或者(我更愿意)您必须记住服务中的状态(
.service |.factory | value

例如:

app.value('layoutState', {
        direction: 'right'
    });
当你把国家放在一个安全的地方时,你可以用一种更“狭隘”的方式改变你的实现:


此class=“sp right”有很多表单。所以我不想改变所有的课程。有什么想法吗?你能给我们一个html代码的大图吗?“方向”是单输入控件的属性还是窗体的属性?请编辑您的问题,以便我们阅读。对此,仅提供一条注释是不够的。此类class=“sp right”有很多表单。所以我不想改变所有的课程。有什么想法吗?——您不必更改每个类,只需将上面的ng类应用于您想要更改的类即可。如果有很多,可以使用一个指令(当您以后不得不添加更多具有相同行为的DOM元素时,它将节省您的时间)。控制器每次都会重置,并且您希望保持状态。对吗?您必须在整个应用程序中使用全球服务。将服务注入控制器。然后,在指令的顶部,您可以简单地说
element.attr('class',scope.state)问题是此指令只工作一次,如何在每个步骤中运行它?
$scope.position = true;

// true=sp-right, false=sp-left
$scope.whatClassIsIt(pos){
  return pos? "sp-right" : "sp-left";
};
app.value('layoutState', {
        direction: 'right'
    });
<span class="{{layoutState.direction === 'right' ? 'sp-right' : 'sp-left'}}">
    <label>
        Number:
    </label>
</span>
app.directive("buttonThatTrigger", ['layoutState', function (layoutState) {
    return {
        restrict: 'C',//target all elements with class button-that-trigger
        link: function (scope, element, attrs) {
            scope.layoutState = layoutState;
            element.click(function(){
                layoutState.direction = layoutState.direction === 'right' ?
                    'left' : 'right';
            });
        }
    };
}]);