А нечего отступы вручную расставлять.
Вот ваш код в нормальном виде:
var app = new Vue({
el: '#vue-app-one',
data: {
sitename: 'The Shop',
string: 'Hello',
product: {
id: 1001,
title: 'Phone',
description: 'The best one <em>phone</em> ever',
price: 1000000,
image: 'This is an image',
},
filters: {
formatPrice: function(price){
if (!parseInt(price)) {return "";}
if (price > 9999){
var priceString = (price /100).toFixed(2);
var priceArray = priceString.split("").reverse();
var index = 3;
while (priceArray.length > index +3){
priceArray.splice(index+3, 0, ',');
index +=4;
}
return '$' + priceArray.reverse().join('');
} else{
return '$' + (price/100).toFixed(2);
}
}
}
},
});
Ничего не замечаете?
Разгадка Фильтры не должны лежать в data, они не данные.