2
我正在製作一個指令,用範圍數據打印視圖組件。我的問題是與iframe,我不能編譯這個。模板注入iframe,但$ compile不綁定範圍數據。
我的代碼
angular.module('app').directive('printable', ['$templateCache', '$compile', function ($templateCache, $compile) {
return {
restrict: 'EAC',
scope: true,
link: function (scope, element, attrs) {
var iframe;
var html = $templateCache.get(attrs.printView);
var elm = document.createElement('iframe');
elm.setAttribute('class', 'print-frame');
elm.setAttribute('style', 'display: none;');
element.parent().append(elm);
iframe = element.parent().find('.print-frame')[0];
var compiled = $compile(html);
write(html);
function write(value) {
var doc;
if (iframe.contentDocument) { // DOM
doc = iframe.contentDocument;
} else if (iframe.contentWindow) { // IE win
doc = iframe.contentWindow.document;
} else {
alert('Wonder what browser this is... ' + navigator.userAgent);
}
doc.write(value);
doc.close();
}
element.bind('click', function (event) {
if (window.navigator.userAgent.indexOf("MSIE") > 0) {
iframe.contentWindow.document.execCommand('print', false, null);
} else {
iframe.contentWindow.focus();
iframe.contentWindow.print();
}
});
}
};
}]);
在此先感謝。
我試過 VAR編譯= $編譯(HTML)(範圍); 和 var compiled = $ compile(html); var elm =編譯(範圍); write(elm); 查看綁定繼續空:( – Daniel 2014-08-29 08:17:34
@Daniel可能你把它在撥弄 – 2014-08-29 08:37:43
我上傳一個例子與我的問題Plunkr:http://plnkr.co/edit/eZhDz8hIPjM6sjcnAOhz – Daniel 2014-08-29 08:45:00