我正在通过 ajax/axiom 将 Laravel 模型的数据集传递给 vuejs2 组件并渲染它。

但是,模型中有一个存储有效 json 对象的 JSON 列,数据可能如下所示:{'key':'value'} 值得注意的是我'由于模型上的 Mutator(protected $casts = [ 'the_json_column' => 'array']; ),我在 Laravel Controllers 等中使用它没有问题

当我通过 axiom/ajax 将此模型传递给 vuejs 时,数组中的所有属性都像往常一样运行,我可以迭代它们并将它们呈现在 vuejs2 组件 DOM 中。

直到我与 'the_json_column' 交互,尽管 Laravel 的修改器正在作为字符串传递给 vuejs2,例如“{'key':'value'}”

每次我想与 JSON 列数据交互时,是否有比在我的 vuejs2 组件中执行 JSON.parse(data.the_json_column).key 更优雅的方法?

请您参考如下方法:

我采用的解决方案是在 VueJS2 模板中手动解码数据属性,

例如JSON.parse(data.key_which_is_actually_json).property_in_the_object

当属性通过 HTTP 传输到 VueJS2 组件时,任何基于 Laravel 的代码(访问器、修改器等)都将失败,因为 VueJS2 不够智能,无法检查数据中的属性接收和解码它们。

VueJS2 似乎只解码接收到的数据中的顶级属性。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!