Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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/8/xslt/3.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
如何操作当前元素';使用AngularJS的父元素、兄弟元素、下一个元素和上一个元素?_Angularjs - Fatal编程技术网

如何操作当前元素';使用AngularJS的父元素、兄弟元素、下一个元素和上一个元素?

如何操作当前元素';使用AngularJS的父元素、兄弟元素、下一个元素和上一个元素?,angularjs,Angularjs,以下是html代码,我将$scope属性和值附加到控件中,如下所示: 这是单击功能,我将更改单击图像上的图像路径,如下所示: $scope.ratingClick = function(e) { $log.info(e.currentTarget.src); //Current element src $log.info(e.next().src); //Next Element Src $log.info(e.prev().src); //

以下是html代码,我将
$scope
属性和值附加到控件中,如下所示:

这是单击功能,我将更改单击图像上的图像路径,如下所示:

$scope.ratingClick = function(e)
{
    $log.info(e.currentTarget.src); //Current element src
    $log.info(e.next().src);        //Next Element Src
    $log.info(e.prev().src);        //Prev Element Src
}
在每个图像上单击,我必须更改当前、上一个和下一个元素的图像URL。但我只能得到当前的图像网址,已被点击


如何使用AngularJS中的当前元素获取父元素、下一个元素、上一个元素和同级元素?

e
指的是单击事件,通常
e.target
包含对实际相关元素的引用(我不确定这与
currentTarget
有什么区别)

您可以像这样使用
e.target

angular.module('app',[]).controller('ctrl',function($scope){
$scope.items=[
1, 2, 3, 4, 5, 6
];
$scope.logPrevNext=函数(e){
console.log('prev',angular.element(e.target.prev().text());
console.log('current',angular.element(e.target.text());
console.log('next',angular.element(e.target.next().text());
};
});

项目{{$index}

e
指的是点击事件,通常
e.target
包含对实际相关元素的引用(我不确定这与
currentTarget
有什么区别)

您可以像这样使用
e.target

angular.module('app',[]).controller('ctrl',function($scope){
$scope.items=[
1, 2, 3, 4, 5, 6
];
$scope.logPrevNext=函数(e){
console.log('prev',angular.element(e.target.prev().text());
console.log('current',angular.element(e.target.text());
console.log('next',angular.element(e.target.next().text());
};
});

项目{{$index}

在控制器中操作dom不适合于角度控制。也许您可以将您的代码更改为指令,并在链接中操作domfunction@selvassn,我该怎么做?在控制器中操作dom在Angular中是不可取的。也许您可以将您的代码更改为指令,并在链接中操作domfunction@selvassn“我怎么能这么做呢?”卡斯拉格,这是ng repeat的一部分。所以,如果我像上面提到的那样,那么它将改变所有行中的图像源。ng repeat只是我的示例,因为您没有提供其他上下文-不管怎样,它不应该改变太多-基本逻辑仍然成立。您的代码中有什么不同之处会使这项工作失败?答案的要点是:不要修改元素本身,而是公开一个将在图像源中使用的控制器变量,并对其进行修改。这是双向绑定的一个很好的例子。@casrag,它是ng repeat的一部分。所以,如果我像上面提到的那样,那么它将改变所有行中的图像源。ng repeat只是我的示例,因为您没有提供其他上下文-不管怎样,它不应该改变太多-基本逻辑仍然成立。您的代码中有什么不同之处会使这项工作失败?答案的要点是:不要修改元素本身,而是公开一个将在图像源中使用的控制器变量,并对其进行修改。这是一个很好的双向绑定示例。