2015-12-11 33 views
1

我們正在使用第三方庫angular translate,其中指令名稱是data-translate。但我們的合作伙伴有一個js文件注入我們的頁面,他們使用jquery查找相同的指令「data-translate」,然後翻譯元素。所以每次角度翻譯都會覆蓋它。禁用特定範圍的角度指令?

樣品:

<script src="angular-translate">//it will search data-translate and make the translate by it's key</script> 
<script src="jquery-translate">//it will search data-translate and make the translate by it's key</script> 
<header data-translate="headerKey"></header> 
<div data-translate="translateKey"></div> 
<footer data-translate="footerKey"></footer> 

最後這將是

<header data-translate="headerKey">angular-translate</header> 
<div data-translate="translateKey">angular-translate</div> 
<footer data-translate="footerKey">angular-translate</footer> 

但我需要的是:

<header data-translate="headerKey">angular-translate</header> 
<div data-translate="translateKey">jquery-translate</div> 
<footer data-translate="footerKey">angular-translate</footer> 

所以我想問是否可以禁用角指令在具體範圍?

+0

請問你能提供一些代碼嗎? – jusopi

+0

您好jusopi,更新樣本! –

+0

@andychen,角度指令'translate'是用戶定義的嗎? –

回答

1

我找到出路通過添加代碼對角翻譯向鏈路功能的頂部,以處理這個問題,:

if($scope.disableTranslate){return;} 

並添加自己的指令爲disableTranslate:

app.directive('disableTranslate', [function() { 
     return { 
     restrict: 'A', 
     controller: ['$scope', function($scope) { 
      $scope.disableTranslate = true; 
     },], 
     }; 
    },]) 

以便我可以使用disable-translate指令來宣告元素的範圍不是通過angular-translate進行轉換,而是通過jquery-translate進行轉換。