我有两个与指令有关的问题。第一个问题涉及注入提供者。我使用了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语句的事实有关?
由于 弗兰克
答案 0 :(得分:2)
它可以很好地编译和编译模板,因为module.directive
只是$compileProvider.directive
的简写。 module.directive的文档会将您引荐至$compileProvider.directive。
至于在你的指令中使用switch
,你能举例说明你是怎么做的吗?根据您正在接通的内容以及您正在执行的操作,您可能会错误地定义您的指令。例如,如果你在指令回调中切换,它只会被执行一次,所以只有一个case
语句会赢,只创建一个指令。