Zeq*_*uez 5 angularjs angularjs-directive
在重写ng-include我的需求的同时,我发现了direcive ngIncludeFillContentDirective,它被声明为ng-include:
.directive({ngInclude: ngIncludeDirective}).directive({ngInclude: ngIncludeFillContentDirective})
您可以在此处查看ngInclude源.你可以在这里看到如上所述调用的指令方法.
那么,它对实际指令的影响到底是什么?它只是作为另一个指令应用吗?它有特殊意义吗?
第二个链接显示了核心角度指令的编译。.directive构建编译提供程序的函数$provide.provider('$compile', $CompileProvider).
ngInclude您的第一个链接显示了和的声明ngIncludeFillContentDirective。您可以看到这ngIncludeFillContentDirective 取决于ngInclude.
我很确定在编译过程中,ngInclude需要先编译,然后再ngIncludeFillContentDirective编译。
因此,我相信这与.directive排序编译过程并以正确的顺序构建依赖关系有关。
编辑:
所以,这是的当前来源$CompileProvider。该对象上有一个名为 的函数directive。这是OP中调用的函数。
您可以看到,如果参数不是字符串,它会在参数对象上调用此行:
forEach(name, reverseParams(registerDirective));
Run Code Online (Sandbox Code Playgroud)
这本质上用于forEach迭代参数对象的属性。 forEach将键从对象中拉出,然后执行以下操作:
iterator.call(context, obj[key], key);
Run Code Online (Sandbox Code Playgroud)
因此,它只使用键的值。
我认为这归结为对象中的属性名称(因此,ngIncludein {ngInclude: ngIncludeFillContentDirective})必须是唯一的。属性 ( ngIncludeFillContentDirective) 的值是注册的值。
所以,似乎并没有什么特别的意义。至少我找不到。
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |