最近写一个项目是基于laravel框架的,这个框架传言是为艺术而创作的优雅框架,简洁分明的风格,很吸引我,所以最近研究比较多。本次就是基于该框架然后将Vue插件加入实现一定的功能,vue插件本身强大,具体不说了,有兴趣的同学可以去官网https://cn.vuejs.org/。laravel 本身php页面是用blade引擎,渲染数据格式:
1
|
{{msg}}
|
但是熟悉Vue渲染的同学知道Vue的格式是:
1
2
3
|
< div id = "app" >
{{ message }}
</ div >
|
这样就引起了冲突,因此,可以是
1
|
@{{msg}}
|
使用@跳出blade引擎模式。
以下代码摘自是laravel-china@leo作者
1
2
3
4
5
6
7
8
9
10
11
|
< 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 >
|
以下是本人自己写的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
< li class = "wrap" v-for = "(course,index) in courses.data" >
< div class = "img" >
< a v-on:click = "show(course)" >
< img v-bind:src = "course.thumblink"
width = "236" height = "124" >
</ a >
</ div >
< div class = "coursetitle" >
@{{course.name}}
</ div >
< div class = "lecturer" >
讲师:@{{course.teachername}}
学期:@{{course.semester}}
</ div >
< div class = "price" >
@{{course.price}}元
</ div >
< div class = "pull-left" >
< button type = "button" class = "btn btn-success btn-xs" v-on:click = "show(course)" >详情</ button >
</ div >
|
有时候我们可能向带有链接的地方插入Vue数据值作为参数,但是熟悉Vue的同学知道Vue是mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:
另外一种思路是使用v-on:click。
1
2
3
4
5
6
7
8
9
10
11
|
<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);
},
}
|
又例如下面的代码:
1
|
< img v-bind:src = "course.thumblink" width = "236" height = "124" >
|
就是使用v-bind实现数据的绑定。
最重要的是我吃了很长的时间的惯性思维的亏,认为使用ajax发送请求都是同样的模板。
但是在laravel中必须考虑CSRF-TOKEN。
如下的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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,可以在页面头部加入
1
|
< meta name = "_token" content = "{{ csrf_token() }}" />
|
这样就可以请求成功。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/ncut/p/7367653.html?utm_source=tuicool&utm_medium=referral