Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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重复项的正确方法_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 从子指令中删除ng重复项的正确方法

Javascript 从子指令中删除ng重复项的正确方法,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,因此,我得到了以下通用结构: <list-item ng-repeat="item in collection"> <remove-item> <a ng-click="remove()">delete</a><!-- this is inside the view.html --> </remove-item> </list-item> 删除 我需要一种适当的方法,在触发时

因此,我得到了以下通用结构:

<list-item ng-repeat="item in collection">
    <remove-item>
        <a ng-click="remove()">delete</a><!-- this is inside the view.html -->
    </remove-item>
</list-item>

删除
我需要一种适当的方法,在触发时,remove()函数将删除已单击对象的完整父级

我在指令上调用scope.parent().parent()..remove()时得到了这个有效的方法,但这是一个糟糕的方法=p

有更好的办法吗?(当然有)

请不要介意这个蹩脚的问题。我是AngularJs的新手,我很难解决这个问题=(


提前感谢。

有几种方法可以避免Angular中的
$scope.$parent.$parent…
问题。如果您使用的是scopes,您应该将希望子对象访问的任何回调或属性放在scope的子属性中。例如,在parent指令中,使用
$scope.api.remove=function(){…}
而不是
$scope.remove=function(){…}
。然后您可以在child指令中调用它,如下所示:

<list-item ng-repeat="item in collection">
    <remove-item>
        <!-- remove() is bound to $scope.api rather than directly to $scope -->
        <a ng-click="api.remove()">delete</a>
    </remove-item>
</list-item>


v1.5.0中的功能。我不会给出详细的示例,但您可以阅读有关此模式的更多信息以及有关组件的更多信息。

Hi,我想帮助您,但需要更多解释,您想在控制器的指令中调用remove action并返回所选对象,对吗?@Maher我需要调用remove()对于整个指令,单击ng在指令内单击…html上的控制器,目前,仅从my DB获取数据并将其显示在ng repeat上。