2015-07-21 22 views
0

我創建了一個指令,其中我有一個作用域(本地),變量爲type,並且該值應返回相應的模板。 chooseTemplateByType返回帶有適當模板的字符串,該模板基於type,例如可能是text_field作爲變量而不是字符串訪問模板內的本地作用域變量

template: 
    chooseTemplateByType(type) 

的問題是如何訪問變量類型我的本地範圍的,所以我可以傳遞值進入我的功能chooseTemplateByType

+1

有什麼問題嗎? – mz3

+0

是標題,也會提出質疑。 – cassioscabral

回答

3

實現這一目標的最佳途徑是通過傳遞type變量的指令屬性。

HTML

<my-directive type="foo"></my-directive> 

JS

myApp.directive('myDirective', function() { 
    return { 
    template: function(elem, attr){ 
     return "<h1>" + attr.type + "</h1>"; // will output <h1>foo</h1> 
    } 
    }; 
}); 

OR

myApp.directive('myDirective', function() { 
    return { 
    templateUrl: function(elem, attr){ 
     return attr.type + '.html'; // will load foo.html 
    } 
    }; 
}); 
+0

我只使用模板,而不是templateUrl,elem和attr仍然可用? – cassioscabral

+0

這是正確的。我爲你增加了另一個例子。 – mz3

+0

謝謝,這是正確的。雖然我遇到了一個問題,我的函數沒有被正確的值調用。我相信是因爲頁面是負載,但價值還沒有。試圖使用$超時,但它沒有工作,因爲我需要調用'''chooseTemplateByType'''每次用戶更改選擇字段中的值也打破。但如果我找不到解決方案,這足以解決另一個問題。但如果任何人有這樣的問題,可以自由發送鏈接,會很有幫助。 – cassioscabral