我有一个带有2个对象模型model1的表单控制器:{name:“foo”} model2:{name:“model2”} 我创建了2个指令隔离范围)。一个使用model1的Element only绑定,另一个使用仅使用model2的Attribute only绑定。Angularjs将2个指令作用域模型绑定到父控制器模型
的嵌套像这样:
<div myattibute="model2">
<mytag my-model="model"></mytag>
</div>
的属性只指令不具有模板和标签指令有一个模板。
问题是我在模型的mytag指令中出现undefined。
。有人看到问题并在plnkr中解释它吗?
http://plnkr.co/edit/Q23XqY?p=preview
部分解决: 与该myattribute指令使得它的工作只NG-transclude添加一个空的DIV模板的工作的例子。随着我授权该属性指令是在一个div它,我会希望它能够在任何可放置的div,跨度等 这里是工作示例: http://plnkr.co/edit/z0M5ys?p=preview
。如何为NG-transclude影响范围继承?
。无法用没有标记的业务逻辑创建此属性吗?
有趣的一点。我试图实现的是分层组件。例如,一个组件只能包含其中的其他组件的布局信息,而属性则用于额外的业务UI逻辑而无需演示。你认为你的模型适合吗? (因为你可以看到,即使在一个简单的例子中,我遇到了'='绑定的一些问题) –
绝对不需要隔离作用域。 Angular核心几乎从不在任何地方使用它们。不是说你永远不会想要他们,但通常没有必要。看看指令控制器是如何工作的。你可以有一个根控制器,你的“子”指令也可以有一个引用,并与根交互。 ngForm和ngModel指令可以做到这一点。 –
哦,你也应该考虑你的指令*通常应该主要是表示逻辑,业务逻辑应该存在于服务中。当然,指令可以自由使用这些服务。 –