Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换ng内的其他元素在ng单击时重复_Javascript_Angularjs - Fatal编程技术网

Javascript 切换ng内的其他元素在ng单击时重复

Javascript 切换ng内的其他元素在ng单击时重复,javascript,angularjs,Javascript,Angularjs,我正试图通过使用ng class和ng click来应用这个类,这对所选元素来说效果很好,但是如何在其他元素中切换这个类呢? 改进的描述: 当前行为: 单击Element,应用类。 在另一个元素上单击,也将应用此元素类。 期望的行为: 单击元素,应用类。 其他元素-类已删除。 <div ng-repeat="element in ngModel | orderBy:'Field_Order'" class='elementForm' ng-hide="element.IsDeleted"

我正试图通过使用ng class和ng click来应用这个类,这对所选元素来说效果很好,但是如何在其他元素中切换这个类呢?
改进的描述
当前行为:
单击Element,应用类。
在另一个元素上单击,也将应用此元素类。
期望的行为:
单击元素,应用类。
其他元素-类已删除。

<div ng-repeat="element in ngModel | orderBy:'Field_Order'" class='elementForm' ng-hide="element.IsDeleted">
    <div layout="row" style="width:100%" class="container" ng-mouseover="hovering=true" ng-mouseleave="hovering=false" flex ng-click="selected = !selected">
        <div class="hover-space" ng-class="{'hoveredFormElement':hovering, 'selected':selected}" flex="2" ></div>
        ....
    </div>
</div>

....

问题是,
选定的
位于一个独立的范围内,其他项不共享该范围

使用索引的一个简单解决方案是

var-app=angular.module('my-app',[],function(){})
app.controller('AppController',函数($scope){
$scope.selected=-1;
$scope.ngModel=[{
i:1
}, {
i:2
}, {
i:3
}, {
i:4
}];
})
.hoveredFormElement{
颜色:绿色;
}
.选定{
背景颜色:灰色;
}

{{selected}}
{{element}}

问题是,
选定的
位于一个独立的范围内,其他项不共享该范围

使用索引的一个简单解决方案是

var-app=angular.module('my-app',[],function(){})
app.controller('AppController',函数($scope){
$scope.selected=-1;
$scope.ngModel=[{
i:1
}, {
i:2
}, {
i:3
}, {
i:4
}];
})
.hoveredFormElement{
颜色:绿色;
}
.选定{
背景颜色:灰色;
}

{{selected}}
{{element}}

在控制器范围内维护标志,并在ng类上使用标志

$scope.selected = { index: undefined };
标记

<div ng-repeat="element in ngModel | orderBy:'Field_Order'" class='elementForm' ng-hide="element.IsDeleted">
    <div layout="row" style="width:100%" class="container" 
      ng-mouseover="hovering = true" 
      ng-mouseleave="hovering = false" 
      flex ng-click="selected.index = !selected">
        <div class="hover-space" 
         ng-class="{'hoveredFormElement':hovering , 'selected':selected.index }" flex="2" ></div>
        ....
    </div>
</div>

....

在控制器范围内维护标志,并在ng类上使用标志

$scope.selected = { index: undefined };
标记

<div ng-repeat="element in ngModel | orderBy:'Field_Order'" class='elementForm' ng-hide="element.IsDeleted">
    <div layout="row" style="width:100%" class="container" 
      ng-mouseover="hovering = true" 
      ng-mouseleave="hovering = false" 
      flex ng-click="selected.index = !selected">
        <div class="hover-space" 
         ng-class="{'hoveredFormElement':hovering , 'selected':selected.index }" flex="2" ></div>
        ....
    </div>
</div>

....

你能创建一个fiddler链接并解释你到底想要什么吗添加一些你尝试过的代码可能会有帮助你能创建一个fiddler链接并解释你到底想要什么吗添加一些你尝试过的代码可能会有帮助