gpt4 book ai didi

javascript - AngularJS - 将范围从父级到子级隔离?

转载 作者:行者123 更新时间:2023-11-28 19:39:57 24 4
gpt4 key购买 nike

我有以下简单的三层标记,每一层都有自己的指令。

<div class="schedule">
<div class="shift" ng-repeat="shift in schedule.shifts">
<div class="task" ng-repeat="task in shift.tasks">

虽然我没有在上面的标记中显示它,但我希望每个层都是一个隔离的范围(因此 shifts 将被隔离,并且 tasks 也被隔离在类次内)。

我在 schedule 类中有一个范围,称为 scope.clipboard。我想部署它并允许 task 访问此 scope.clipboard

由于通过隔离 shift,我需要传递 shift 可以访问的所有内容,我知道如何做到这一点的唯一方法就是传递 scope.clipboardshift 只是这样我就可以将它传递给 task,即:

app.directive('shift', function()
{
return {
scope: { clipboard : '=' }
}
}

app.directive('task', function()
{
return {
scope: { clipboard : '=' }
}
}

这是正确的方法吗?换句话说,如果你想将一个隔离范围从第 1 层传递到第 3 层,是否还需要将其传递到第 2 层?

最佳答案

是的,要将任何内容从第一层传递到第三层(使用隔离范围和您想要的其他技术),您需要将其从每一层传递到下一层。

但是,由于您的父级没有重复(它是单例),您可能需要考虑将其移至服务中。无论如何,这几乎总是共享 Material 的正确选择,因为默认情况下服务是单例的,它们是可注入(inject)的(易于测试)并且它们会清理所有这些。该服务甚至不需要执行任何操作,只需公开指令可以引用的 this.clipboard=... 值即可。然后只需将服务注入(inject)到每个指令中即可完成。

关于javascript - AngularJS - 将范围从父级到子级隔离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com