指令 - AngularJS

时间:2013-05-09 23:24:16

标签: angularjs

我有两个与指令有关的问题。第一个问题涉及注入提供者。我使用了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语句的事实有关?

由于 弗兰克

1 个答案:

答案 0 :(得分:2)

它可以很好地编译和编译模板,因为module.directive只是$compileProvider.directive的简写。 module.directive的文档会将您引荐至$compileProvider.directive

至于在你的指令中使用switch,你能举例说明你是怎么做的吗?根据您正在接通的内容以及您正在执行的操作,您可能会错误地定义您的指令。例如,如果你在指令回调中切换,它只会被执行一次,所以只有一个case语句会赢,只创建一个指令。