Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 带有嵌套复选框的奇数ng模型行为_Angularjs - Fatal编程技术网

Angularjs 带有嵌套复选框的奇数ng模型行为

Angularjs 带有嵌套复选框的奇数ng模型行为,angularjs,Angularjs,好的,这是我正在经历的一个行为。我尝试在所有级别上使用相同的ng模型,但这也显示出奇怪的行为,这是我最接近我实际尝试实现的目标 我希望toplevel复选框与sublist1复选框一样工作 创建不需要的行为的步骤: 单击项目1的顶级复选框 再次单击项目1的顶级复选框,直到达到预期效果为止 单击“子级别项目2.1”复选框,此选项有效。但是,顶级项目1复选框将不再更改项目2.1复选框 因为每一次ng重复都会创建一个新的作用域,一旦一个深层作用域被操纵以拥有它自己的属性,它将不再从更高级别的作用域继承

好的,这是我正在经历的一个行为。我尝试在所有级别上使用相同的ng模型,但这也显示出奇怪的行为,这是我最接近我实际尝试实现的目标

我希望toplevel复选框与sublist1复选框一样工作

创建不需要的行为的步骤:

  • 单击项目1的顶级复选框
  • 再次单击项目1的顶级复选框,直到达到预期效果为止
  • 单击“子级别项目2.1”复选框,此选项有效。但是,顶级项目1复选框将不再更改项目2.1复选框

  • 因为每一次ng重复都会创建一个新的作用域,一旦一个深层作用域被操纵以拥有它自己的属性,它将不再从更高级别的作用域继承

    这是意料之中的。
    查看我个人资料中关于
    范围
    ng repeat

    的一个问题,我不确定我们谈论的是同一件事,我不是在尝试更新更高级别的范围,它是停止工作的较低级别的范围,我理解你所说的当它被更改时创建新范围的意思,但它应该从顶层继承它的范围,不是吗?根据您的问题参考,模型应该继承自普通$digest中的$parent。我们讨论的是同一件事。只要本地作用域没有同名的属性,它将只继承更高级别的作用域。手动选中子范围中的复选框后,它将创建自己的属性。该范围现在将只看到本地属性,而不是它从上面继承的属性。本地范围现在将优先于
    ng checked=“TopLevelGroup”
    Hmm。。你是对的,范围是问题的一部分,这个链接提供了很多关于这个问题的见解。但这并不是问题的解决方案,即使知道原型继承,它本身也无法解决问题,我必须重新设计整个模型,使用二维数组为每个嵌套指向正确的模型。这样做可以解决问题,而不必担心继承问题。否则,我将永远无法嵌套超过2层。但由于我还不能投票,我所能做的就是将其标记为答案,因为它至少为我指明了我需要走的方向。