前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel 中如何使用ajax和vue总结

laravel 中如何使用ajax和vue总结

作者头像
用户8449980
修改2021-07-13 10:29:26
1.9K0
修改2021-07-13 10:29:26
举报
文章被收录于专栏:编程学习园地编程学习园地

最近写一个项目是基于laravel框架的,这个框架传言是为艺术而创作的优雅框架,简洁分明的风格,很吸引我,所以最近研究比较多。本次就是基于该框架然后将Vue插件加入实现一定的功能,vue插件本身强大,具体不说了,有兴趣的同学可以去官网

。laravel 本身php页面是用blade引擎,渲染数据格式:

{{msg}}

但是熟悉Vue渲染的同学知道Vue的格式是:

&l/

/t;div id="app">

{{ message }}

</div>

这样就引起了冲突,因此,可以是

@{{msg}}

使用@跳出blade引擎模式。

以下代码摘自是laravel-china@leo作者

<tr v-for="item in services">

<td>@/

/{{ item.id }}</td>

<td>@{{ item.name }}</td>

<td>@{{{ displayHosts(item.hosts) }}}</td>

<td>@{{{ bool2icon(item.enabled) }}}</td>

<td>@{{{ bool2icon(item.allow_proxy) }}}</td>

<td>@{{ item.created_at }}</td>

<td>

<a href="javascript:void(0)" rel="external nofollow" @click="edit(item)">{{ trans('admin.edit') }}</a>

</td>

</tr>

以下是本人自己写的代码:

<li v-for="(course,index) in courses.data">

<div >

<a v-on:click="show(course)">

<img v-bind:src="course.thumblink"

width="236" height="124">

</a>

</div>

<div >

@{{course.name}}

</div>

<div >

讲师:@{{course.teachername}}

学期:@{{course.semester}}

</div>

<div >

@{{course.price}}元

</div>

<div >

<button type="button" v-on:click="show(course)">详情</button>

</div>

有时候我们可能向带有链接的地方插入Vue数据值作为参数,但是熟悉Vue的同学知道Vue是mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:

另外一种思路是使用v-on:click。

<a v-on:click="show(course)">

Vue实例代码:

methods:{

show:function(course)

{

// debugger;

window.location.href="/prices/detail/" rel="external nofollow" +course.course_id;

// console.log(result);

},

}

又例如下面的代码:

<img v-bind:src="course.thumblink" width="236" height="124">

就是使用v-bind实现数据的绑定。

最重要的是我吃了很长的时间的惯性思维的亏,认为使用ajax发送请求都是同样的模板。

但是在laravel中必须考虑CSRF-TOKEN。

如下的代码:

function init_courses()

{

// debugger;

$.ajax({

type:"post",

url:'/selectCourse',

dataType: 'json',

data:{result:resul='全部,全部,全部'},

headers: {

'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')

},

success:function(data)

{

mydata.courses=eval(data.result);

console.log(mydata.courses);

},

error: function(xhr, type){

alert('Ajax error!')

}

});

};

如果你的页面没有看到一个CSRF,可以在页面头部加入

<meta name="_token" content="{{ csrf_token() }}"/>

这样就可以请求成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档