2013-02-26 84 views
1

我是Angular.js的新手,我試圖在不同客戶端的指令中使用不同的模板。動態更改目錄的模板

的問題是,我有三個類型的客戶端三個模板,我想基於客戶端類型的檢測

我谷歌搜索後,發現結果是所有關於後的結果來使用不同的模板,我的指令將屬性添加到目錄標記中,但在準備好檢測結果時,模板已經編譯完成。

有什麼建議嗎?

回答

1

你可以在你的指令中注入一個變量來查看模板的不同目錄。

myApp.directive('testDirective', [ 
    'clientType', function(clientType) { 
    return { 
     ... 
     templateUrl: '/templates/' + clientType + '/test.html' 
    }; 
    } 
]); 

然後,您可以在應用程序外部設置常量'clientType',並將其作爲常量傳入。

myApp.constant('clientType', 'mobile'); // Some type of function to determine this 

雖然您可能需要手動引導應用程序纔能有效使用此應用程序。我正在做一些類似的生產代碼來控制從哪裏加載模板。

+0

很酷,謝謝。我不認爲我可以傳遞這樣的對象。現在我在一個服務中有一個函數,它決定了客戶端並將該函數傳遞給了指令,就像魅力一樣 – 2013-02-26 21:50:02