blob: dd56ee27f11eff04ad530bcf9a8f1340fb71821f [file] [log] [blame]
module.exports = function timelineMessageDirective(Timelines, $sce, $interpolate) {
var defaults = {
message: '',
type: 'info',
ttl: 5000
}
return {
restrict: 'AE',
replace: true,
template: '',
transclude: true,
link: function(scope, iElem, iAttrs, ctrls, transcludeFn) {
var options = angular.extend({}, defaults, scope.$eval(iAttrs.timelineMessage))
transcludeFn(function(elem, scope) {
var e,
html,
interpolateFn,
safeHtml
// Create temporary wrapper element so we can grab the inner html
e = angular.element(document.createElement('div'))
e.append(elem)
html = e.html()
// Interpolate expressions in current scope
interpolateFn = $interpolate(html)
html = interpolateFn(scope)
// Tell Angular the HTML can be trusted so it can be used in ng-bind-html
safeHtml = $sce.trustAsHtml(html)
// Add notification
Timelines.add(safeHtml, options.type, options.ttl)
})
}
}
}