Ответ 1
Если вы $compileProvider.imgSrcSanitizationWhitelist()
без параметра regexp, он возвращает текущее заданное регулярное выражение.
Запуск этого кода на пустой angular 1.3.0:
app.config(function ($compileProvider) {
console.log($compileProvider.imgSrcSanitizationWhitelist()); //
});
Я получил этот результат - /^\s*((https?|ftp|file|blob):|data:image\/)/
И кодированный base64 JPEG с использованием основного <img ng-src="{{main.src}}">
работает, как вы можете видеть здесь, и другой с png. Также посмотрите на консоль, чтобы увидеть регулярное выражение.
Еще один тест, который я выполнил, состоит в том, чтобы переместить data:image/jpeg;base64,
из строки привязанной области и поместить его в ng-src:
<img ng-src="data:image/jpeg;base64,{{main.src}}">
Как вы можете видеть, работал.
Короче говоря, вам не нужно определять regexp в 1.3.0 и выше для данных: image/*, как определено по умолчанию.
Я не могу быть уверен, в чем проблема, но, возможно, у вас есть другое определение imgSrcSanitizationWhitelist где-то в вашем коде или данные uri как-то сломается.