我目前工作的模塊,用戶可以輸入文本到文本區域,與具有以下格式一些圖像標籤沿獲得的圖像:NG綁定 - HTML - 通過過濾器
ii[5ae71206|100|100]ii
。
這是我的「米顯示輸入的文本:
<span ng-bind-html="localeCache[item.sysName][editLocale]['text1'] | imageFilter"></span>
的‘ImageFilter的’型濾波器應該從文本與<img>
取代我的自定義標籤,所以ii[5ae71206|100|100]ii
變成:
<img src="path-to-file-with-image-id-5ae71206"
style="max-width:100px;max-height:100px;">
爲我的過濾器的源代碼如下:
define(
['angularAMD', 'docService']
, function(angularAMD){
angularAMD.filter('imageFilter', function($rootScope, DocAdminService){
return function(text) {
var regExImgTag = /ii\[(.*?)]ii/g;
var regExImg = /ii\[.*?\]ii/;
var imageTags = regExImgTag.exec(text);
if(imageTags !== null){
var tag = imageTags[1];
var parts = tag.split('|');
var imgTag = parts[0];
var width = parts[1];
var height = parts[2];
var imgString = '<img ng-src="' + $rootScope.path_to_REST_Service + imgTag + '" style="max-width:' + width + 'px; max-height:' + height + 'px;">';
var textNew = text.replace(regExImg, imgString);
console.log(textNew);
return (textNew);
});
}
else{
return text;
}
};
});
}
);
過濾器將返回正確的字符串,但視圖不會呈現圖像。當我剛剛輸入一些沒有自定義圖像標籤的文本時,所有內容都按預期工作。 任何想法?
嘗試使用替代''src' NG-src' –
這是我想的第一件事。沒有改變行爲。 – DCH
是否是打字錯誤:'var imgString' - >'$ rootScope.path_to_REST_Service''''_Service後 –