稍后在角度中引用元素
Reference an element later in angular
我有两个图像,您必须选择其中一个,并且类会根据您使用ng-click
选择的图像而变化。在进行下一步时,我创建了一个对象,并存储对刚刚选择的内容的引用:
$scope.cabinetDetails.cabinetType = {
name: $scope.currentElement.obj.name,
image: $scope.currentElement.obj.image,
ref: $scope.currentElement
};
$scope.currentElement
是我选择的任何图像,我想我以后可以通过:$scope.cabinetDetails.cabinetType.ref
访问它
假设我正在进行第二步,我想对第一步进行更改。我点击我的面包屑返回,我再次看到第一步(这很好)我希望类更改为其选定状态
在加载第一步时,我这样做:
if ($scope.cabinetDetails.cabinetType != null)
{
$scope.currentElement = $scope.cabinetDetails.cabinetType.ref;
}
我想这会预选我以前的图像,因为我的ng-repeat
在ng-class
部分做了一个简单的检查:
<div ng-repeat="obj in currentObject">
<div class="img-select" ng-click="setActive(this)" ng-class="{itemSelected : isActive(this)}">
<div align="center">
<img ng-src="resources/images/aventos/{{obj.image}}" />
</div>
<div class="img-title">{{obj.name}}</div>
</div>
</div>
isActive()
的功能也相当简单:
$scope.isActive = function(element)
{
return $scope.currentElement === element;
}
我一直在努力避免发布问题,但我似乎无法解决这个问题。这就像我的引用是无效的
html模板中的一个问题是在多个方法中使用this
。CCD_ 8将指代CCD_ 9的当前作用域对象。
假设你在一个数组上迭代,你能改变这行吗
<div class="img-select" ng-click="setActive(this)" ng-class="{itemSelected : isActive(this)}">
至
<div class="img-select" ng-click="setActive(obj)" ng-class="{itemSelected : isActive(obj)}">
还要通过调试方法来验证方法setActive
和isActive
是否在对象而不是作用域实例上工作。
问题出在this
关键字上。this
不可从模板传递。
与其引用元素,不如后退一步,引用中继器中的基础项。尝试将this
更改为obj
(ng-repeat="obj in currentObject"
中的对象)
ng-click="setActive(obj)" ng-class="{itemSelected : isActive(obj)}
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- Vanilla JS通过引用移除数组元素
- 获取对使用Tampermonkey使用javascript创建的元素的引用
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- 如何在使用Ractive.extend()时引用DOM元素
- 如何使用角度事件处理程序引用输入元素的值
- 在不引用文档的情况下使用AngularJS获取元素
- 引用Cordova/Onsen中的模板HTML元素
- 如何从函数引用元素(从事件侦听器调用)
- 如何在 if 语句中引用元素
- JQuery:如何动态引用元素
- 稍后在角度中引用元素
- 为什么在使用“insertBefore()”时需要引用元素的父级
- 使用Aurelia's ref属性引用元素的视图模型
- 从另一个HTML文件引用元素id
- 如何在不指定Id's的情况下引用元素
- 只从引用元素的DOM中删除一个元素
- 在不使用jQuery的情况下通过href散列引用元素
- 如何基于按类名循环遍历元素来引用元素'
- 如何使用文档引用元素.当未为元素设置id时,使用getElementById