2

我正在为可能非常容易的事情而苦苦挣扎,但是在 Stackoverlow 上搜索数小时并没有帮助。

我正在使用特雷弗爵士和 MEANJS。特雷弗爵士将自己应用于 textarea 字段并将其内容保存为 JSON 字符串。

特雷弗爵士将其内容保存到一个字段中Content,该字段被设置为Object猫鼬模式中的一种类型。

创建效果很好,一切都按预期保存。

但是,在编辑时,数据无法正确显示。文本字段被分配data-ng-model="article.content"[模型中的“内容”字段],但显示为[object Object],因此当 Trevor 爵士尝试解析该值时,它会出错。

我尝试使用指令$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在链接函数中尝试过,但从未见过任何东西]。

String通过更改架构类型然后stringify在代码中一遍又一遍地使用,我能够使其正常工作。这看起来很草率,造成了过度膨胀,并且在尝试在实际视图页面上迭代时也带来了挑战[它被视为String- 无法弄清楚如何解析]。

我假设我需要在article.content渲染之前以某种方式捕获属性并将值更改为字符串。这是正确的方向吗?

4

1 回答 1

3

您的 html 中有错字,stRaw应该是st-raw.

<textarea data-ng-model="article.content" id="content" class="form-control st-instance" placeholder="Content" st-raw></textarea>
于 2014-08-02T09:14:43.843 回答