現在、angular でも使用したいが、アンダースコアでも使用できるようにしたい underscore.js テンプレートがあります。次のように、ディレクティブを使用して特定のスコープの補間開始記号と終了記号を変更できるかどうか疑問に思っていました。
angular.directive('underscoreTemplate', function ($parse, $compile, $interpolateProvider, $interpolate) {
return {
restrict: "E",
replace: false,
link: function (scope, element, attrs) {
$interpolateProvider.startSymbol("<%=").endSymbol("%>");
var parsedExp = $interpolate(element.html());
// Then replace element contents with interpolated contents
}
}
})
しかし、これはエラーを吐き出します
エラー: 不明なプロバイダー: $interpolateProviderProvider <- $interpolateProvider <- underscoreTemplateDirective
$interpolateProvider
モジュール構成のみ利用可能ですか? より良い解決策は、単純に文字列置換を使用して<%=
to{{
および%>
toに変更すること}}
でしょうか?
また、 inとinをelement.html()
エスケープしていることに気付きました。この自動エスケープを防ぐ方法はありますか?<
<%=
>
%>