В многоязычном приложении компилирую переводы, содержащие логику, в ангуляровские выражения:
"{{{0:1,8:1}[n]==1 ? {0:'%нет тарелок '+{'0':'добави’ло = 5', '1':'добавил', '2':'добавила'}[s]+'',8:'тарелочки!'}[n] : {one:''+n+' тарелка',few:''+n+' ’тарелки',many:''+n+' ″тарелок″',other:''+n+' сколько-то тарелок'}[n%1==0 ? (n%10==1 && n%100!=11 ? 'one' : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 'few' : 'many') : 'other']}}
Далее Ангуляр читает JSON со строками, парсит и выполняет.
Хочу парсить заранее и в JSON класть сериализованные функции, для чего поставил Ангуляр на node.js и обрабатываю строки методом $interpolate.
Проблема в том, что сериализация полученной функции методом toString() выдает такое:
function (context) {
          try {
            for(var i = 0, ii = length, part; i<ii; i++) {
              if (typeof (part = parts[i]) == 'function') {
                part = part(context);
                if (trustedContext) {
                  part = $sce.getTrusted(trustedContext, part);
                } else {
                  part = $sce.valueOf(part);
                }
                if (part === null || isUndefined(part)) {
                  part = '';
                } else if (typeof part != 'string') {
                  part = toJson(part);
                }
              }
              concat[i] = part;
            }
            return concat.join('');
          }
          catch(err) {
            var newErr = $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text,
                err.toString());
            $exceptionHandler(newErr);
          }
        }
Можно как-нибудь подтянуть зависимости или сделать так, чтобы Ангуляр на клиенте смог выполнить такую функцию?