2

我有 2 个与指令有关的问题。第一个问题与注入提供者有关。我使用了 AngularJS 网站上列出的编译指令示例。在该示例中,它声明创建一个模块,然后从该模块创建一个指令

// declare a new module, and inject the $compileProvider
angular.module('compile', [], function($compileProvider) {
  // configure new 'compile' directive by passing a directive
  // factory function. The factory function injects the '$compile'
 $compileProvider.directive('compile', function($compile) {...

在我的应用程序中,我所做的就是像这样创建指令

myApp.directive('compile', function($compile) {...

我没有在我的代码中的任何地方提到 $compileProvider,但是我的代码仍然可以正常工作并且可以很好地编译模板。这是为什么?

此外,虽然它在编译模板时效果很好,但它们似乎都可以工作,除非我编译'switch'语句。'switch' 语句似乎没有链接范围,所有其他元素编译没有问题。这是否与我没有注入 $compileProvider 的事实有关,或者在编译时是否存在需要额外步骤的 switch 语句?

谢谢弗兰克

4

1 回答 1

2

它可以很好地工作和编译模板,因为module.directive它只是$compileProvider.directive. module.directive的文档将您推荐给$compileProvider.directive

至于switch在你的指令中使用,你能提供一个例子来说明你是如何做到这一点的吗?根据您打开的内容和执行的位置,您可能错误地定义了指令。例如,如果你在指令回调内部切换,它只会被执行一次,所以你的case语句中只有一个会获胜并且只创建 1 个指令。

于 2013-05-10T00:48:50.883 回答