2013-05-09 117 views
2

我有2個與指令有關的問題。第一個問題涉及注入提供者。我已經使用了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) {... 

我沒有提到的指令$ codeProvider在我的代碼中的任何地方,但是我的代碼仍然可以正常工作並編譯模板。這是爲什麼?

另外,雖然它在編譯模板時效果很好,但它們似乎都可以工作,除非編譯'switch'語句。 'switch'語句似乎沒有鏈接範圍,所有其他元素編譯時沒有問題。這是關係到我沒有注入$ compileProvider的事實,還是有一些switch語句在編譯時需要額外的步驟?

感謝 弗蘭克

回答

2

它的工作原理,並編譯模板相當不錯,因爲module.directive僅僅是簡寫$compileProvider.directivemodule.directive的文檔提及$compileProvider.directive

至於在你的指令中使用switch,你能提供一個你如何做的例子嗎?取決於你打開什麼以及你在做什麼,你可能會錯誤地定義你的指示。例如,如果您在指令回調中進行切換,則只會執行一次,因此只有您的case語句中的一個會贏,並只創建一個指令。

+0

感謝您提供一些反饋。我一直無法在jsfiddle上重新創建行爲,所以我可能會檢查我的代碼。無論如何,你已經給了我一些繼續。 – barcrab 2013-05-20 05:38:50

+1

如果您對此感到滿意,您應該將回答標記爲答案。 – MaxWillmo 2013-05-31 14:00:04