我有3个具有分离范围和共享范围的指令,我希望通过最外面的最内向指令传递功能。外部和中间具有孤立示波器,中间具有内在范围。有什么建议吗?
通过我的控制器的功能,如下所示。
< ofter on-edit =" helloworld" ng-model =" model" ng-repeat =" intems.objects"></oute>
在我的控制器中:
$ scope.helloworld = function(){ 警报(" Hello World"); }
我的指示:
Angular.Module('MyApp') 。 返回 { 限制:'e', 替换:是的, 范围: { 项目:" = ngmodel", Onedit:'&' },, 模板:'<div>< midd 控制器:功能($ scope){ $ scope.edit = function(){ $ scope.onedit()(); } } }; })) 。 返回 { 限制:'e', 替换:是的, 范围: { 项目:'= ngmodel', Onedit:'&' },, templateurl:'<div>< inner-on-edit ='oneDit'></innit></div>'/div>'/div>'/div>' }; })) 。 返回 { 限制:'e', 模板:'<div>< a ng-click ='edit()'> edit</a></div>' }; }))
这不起作用,有什么想法吗?
谢谢
这看起来是一个不好的设计,但是在中间指令的模板中,您正在使用内部指令如下:
<div><inner on-edit='onEdit'></inner></div>
如果您看着它,内部指令没有范围,因此编辑的属性在那里没有意义。
如果要使用中间指令中存在的任何方法,则可以直接在内部指令中使用,因为共享范围。将内部指令视为在其他HTML文件中编写的HTML的一部分,该文件将在运行时替换。因此,您传递给中间指令的任何东西都隐含地传递给内部。