我正在通过ajax / axiom将Laravel Model的数据集传递给vuejs2组件,并将其渲染得很好。
但是,模型中有一个JSON列,用于存储有效的json对象,数据可能如下所示:{'key':'value'}
,并且值得注意的是,由于使用了Model上的Mutator,我正在Laravel Controllers中使用它而没有问题( protected $casts = [ 'the_json_column' => 'array'];
)
当我通过axiom / ajax将模型传递给vuejs时,数组中的所有属性都照常运行,我可以对其进行迭代,并在vuejs2组件DOM中呈现它们。
直到我与'the_json_column'
交互,尽管有Laravel的mutator,它仍作为字符串传递给vuejs2,例如"{'key':'value'}"
每当我想与JSON列数据进行交互时,是否有比在vuejs2组件中执行JSON.parse(data.the_json_column).key
更好的方式?
最佳答案
我采用的解决方案是在VueJS2模板中手动解码data属性,
例如JSON.parse(data.key_which_is_actually_json).property_in_the_object
当将属性通过HTTP传输到VueJS2组件时,任何基于laravel的代码(访问器,更改器等)都将失败,因为VueJS2不够智能,无法检查数据接收和解码中的属性。
VueJS2似乎只解码接收到的数据中的顶级属性。