我正在通过 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 似乎只解码接收到的数据中的顶级属性。