için özel enterpolasyon sembolleri kullanıyor. Şu anda açısal olarak kullanmak istediğim ve yine alt çizgi ile kullanabileceğim bir underscore.js şablonum var.Angularjs, kapsamı
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
}
}
})
Ama bu
Error: Unknown provider: $interpolateProviderProvider <- $interpolateProvider <- underscoreTemplateDirective
için kullanılabilir $interpolateProvider
mi hata tükürür: Böyle bir yönergesini kullanarak belirli bir kapsam için interpolasyon başlangıç ve bitiş sembollerini değiştirmek mümkün acaba modül yapılandırması? <%=
değerini {{
ve %>
- }}
olarak değiştirmek için dize değiştirmeyi kullanmak daha iyi bir çözüm olabilir mi?
Ayrıca, ben element.html()
%>
yılında <%=
yılında <
ve >
kaçar fark ettim. Bu otomatik kaçmayı önlemek için bir yolu var mı?
Teşekkürler, bu harika çalışıyor! Tüm örnekleri değiştirmek için küçük bir değişiklik yaptım ('g' ile regex kullan): http://jsfiddle.net/e3s5d/ –
Harika çağrı. Güncelleme yanıtı. – colllin
Artık, <% - 'sözdizimini işaret ettiniz, altyazıdaki <% =' varsayılanının açısal '
'ile daha benzer olduğunu anlıyorum. Belki de "" ile ham ifadede '<% = '' değiştirerek çıkışsız html'ye izin vermek için bu yönergeye bazı mantık ekleyebilirsiniz. Referans: http://stackoverflow.com/a/10971756/361609 – colllin