ExpressJS/AngularJS: преобразование объекта JSON в строку
Я борюсь с чем-то, что может быть очень легко, но часы поисков на Stackoverlow не помогли.
Я использую сэра Тревора с MEANJS. Sir Trevor применяет себя к полю textarea и сохраняет его содержимое в виде строки JSON. Сэр Тревор сохраняет его содержимое в полеContent
, которое задается как Тип Object
в схеме Мангуста.
Создание прекрасно работает, и все экономит, как и ожидалось.
Однако при редактировании данные не изменяются. подходите правильно. Текстовое поле назначается data-ng-model="article.content"
[поле 'content' из модели], но отображается как [object Object]
, поэтому, когда сэр Тревор пытается разобрать значение, оно выдает ошибку.
Я пытался использовать директиву с $formatters
, чтобы изменить значение:
<textarea data-ng-model="article.content" id="content"
class="form-control st-instance" placeholder="Content" stRaw>
</textarea>
...а вот директива:
articleApp.directive('stRaw', function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
function stringIt(val) {
return JSON.stringify(val);
}
ngModel.$formatters.push(stringIt);
}
};
});
Но похоже, что директива никогда не срабатывает [я пробовал console.log
в функции link и ничего не видел].
Я смог заставить его работать. fine before, изменяя тип схемы String
, а затем используя stringify
снова и снова в коде. Это казалось небрежным, создало ненужное раздувание, а также создало проблемы при попытке повторить на странице фактического просмотра [это было видно как String
- не мог понять, как анализировать].
Я предполагаю, что мне нужно каким-то образом поймать атрибут article.content
, прежде чем он будет отрисован, и изменить значение на строку. Это правильное направление?