我有一个例子,我想为模块化表单创建一个可重用指令,其中有一个主表单指令旨在与字段输入指令的某种组合一起使用。像这样的事情:
<form-container submit-path="/path/to/api/">
<input-field label="Foo"></input-field>
<select-field label="Bar"></select-field>
</form-container>
我会在表单容器上使用隔离范围,并且还需要为字段创建一个嵌入范围,但我不确定字段要使用什么。我设想范围层次结构是这样的:
- (1) form-container isolate scope
- (2) form-container transcluded scope
- (3) input-field scope
- (4) select-field scope
范围 (1) 将具有从表单收集和发布数据的功能,但它需要访问绑定(bind)到范围 (3) 和 (4) 中表单元素的数据。
这可能吗?
由于首选方法是将模式存储在范围 (2) 中,因此我需要将字段绑定(bind)到不同的变量名称,但似乎我无法在 ng-model 上进行插值指令的属性。 编辑: 看来我可以在编译函数中手动执行此操作? 第二次编辑:一次 this bug已修复。
此外,表单提交功能无法直接访问范围 (2) 中的数据。您可以使用 $$nextSibling,但显然这是 bad practice.
有没有办法让作用域(3)和(4)直接继承作用域(1)?
最佳答案
http://plnkr.co/edit/F1e1mKA2UU3EL1M9yaJ0?p=preview
这是我试图通过使用来实现的 指令 Controller 并让子指令更新 通过其 Controller 在父指令中获取值。
我对这个问题投了赞成票,因为我不满意并希望看到更好的解决方案。
关于javascript - AngularJS - 包含子范围的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513319/