所以我使用 Laravel-Mix 并在 Webpack 中设置了代码分割。我正在为我的 Vue 组件使用动态导入,如下所示。
Vue.component('UserMenu', () => import('./components/UserMenu.vue'));
Run Code Online (Sandbox Code Playgroud)
.babelrc
由于我也在使用 Babel,因此我从项目根目录中的文件加载了语法动态导入插件。
这一切都工作正常,并且 Webpack 在构建时正确地分割了代码。然而,问题是,它将块放在公共根中而不是放在public/js
如果在我的 webpack.mix.js 中我这样做......
mix.js('resources/assets/js/app.js', 'public/js');
Run Code Online (Sandbox Code Playgroud)
...然后混合将构建的文件正确地放置在/js
目录中。
但是为了对文件进行分块,如果在 webpack.mix.js 中我会...
mix.webpackConfig({
entry: {
app: './resources/assets/js/app.js',
},
output: {
filename: '[name].js',
publicPath: 'public/js',
}
});
Run Code Online (Sandbox Code Playgroud)
...无论我分配给 publicPath 属性什么,所有块都会放入公共根中。
知道我在这里缺少什么吗?
我在 json 中有很长的时区列表,如下所示。
[
{"value": "Pacific/Niue", "name": "(GMT-11:00) Niue"},
{"value": "Pacific/Pago_Pago", "name": "(GMT-11:00) Pago Pago"},
{"value": "Pacific/Honolulu", "name": "(GMT-10:00) Hawaii Time"},
{"value": "Pacific/Rarotonga", "name": "(GMT-10:00) Rarotonga"},
{"value": "Pacific/Tahiti", "name": "(GMT-10:00) Tahiti"},
{"value": "Pacific/Marquesas", "name": "(GMT-09:30) Marquesas"},
{"value": "America/Anchorage", "name": "(GMT-09:00) Alaska Time"},
{"value": "Pacific/Gambier", "name": "(GMT-09:00) Gambier"},
{"value": "America/Los_Angeles", "name": "(GMT-08:00) Pacific Time"},
{"value": "America/Tijuana", "name": "(GMT-08:00) Pacific Time - Tijuana"},
{"value": "America/Vancouver", "name": "(GMT-08:00) Pacific Time - Vancouver"},
]
Run Code Online (Sandbox Code Playgroud)
我设置了用户时区检测,它返回一个时区字符串作为 "America/Los_Angeles"
使用 Javascript 我想找到America/Los_Angeles
json 对象中的位置,以便我可以使用它的“名称”来预填充表单字段。
我熟悉indexOf() …
我在Codeigniter中创建了一个表单,其中包含一个使用javascript动态复制的电话号码字段.所以基本上我可以有一个或多个这样的字段.
<input name="phone[]" value=""type="text">
<input name="phone[]" value=""type="text">
Run Code Online (Sandbox Code Playgroud)
然后在我的控制器中我有
$form_data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'phone' => $this->input->post('phone[]')
);
Run Code Online (Sandbox Code Playgroud)
然后我就这样把它保存到我的dabase中
function SaveForm($form_data)
{
$this->db->insert('customers', $form_data);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
但显然"手机"的代码是错误的,我只是想弄清楚如何正确地做到这一点.
我确定我在这里缺少一些简单的东西。我创建了一个可重用的子组件,其中包括如下所示的输入,并且我将从父级传递给它initialValue
的itemValue
prop中分配数据对象中的in 。
<template>
<label>{{itemLabel}}</label>
<input v-model="initialValue" type="text" >
</template>
<script>
export default {
props: ['itemValue'],
data(){
return {
initialValue: this.itemValue,
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果在父组件中,我item-value
直接使用字符串分配属性,则效果很好。
问题是我想item-value
在父对象中进行ajax调用后设置,因此我将其绑定到由使用以下方法设置的数据对象属性beforeMount()
<v-child-component :item-value="theValue"></v-child-component>
Run Code Online (Sandbox Code Playgroud)
和...
data(){
return {
theValue: null,
}
},
methods: {
setvalue(){
//make ajax axios get request here then set this.theValue
}
}
beforeMount(){
this.setValue();
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,似乎孩子的item-value
已绑定到null
ajax调用完成并设置实际值之前的值。我如何在这里达到目的?
vue.js ×2
vuejs2 ×2
arrays ×1
codeigniter ×1
insert ×1
javascript ×1
json ×1
laravel ×1
laravel-mix ×1
webpack ×1