用ajax从后台取值不是什么有技术含量的活计,把后台取来的值绑定到Vue对象上也不算难,但每一次向后台拿数据的时候都得写上这么一段代码就十分痛苦了。

于是我写了这么一小段js代码,能够自己根据url去后台拿数据,拿来之后自动创建Vue对象并绑定到页面上,整个过程一步到位,岂不美哉!

/**
* 这是一个数据绑定插件,binding()方法接受两个参数,并通过ajax取值然后直接绑定到html元素上<br>
* @author lille 创建于 2019-3-29
*/
var obj = this;
/**
*
* @param elname html元素,通常是一个字符串格式的css选择器,比如:"#t_table"
* @param ajaxpa <br>
* 包含ajax所需的url、data、type,比如:<br>
* <pre>
* {
* url:"getpeoplelist",
* data:{},
* type:"get"
* }
* </pre>
* @returns
*/
function binding(elname, ajaxpa) {
if (typeof (obj[elname]) == "undefined") {
obj[elname] = new Vue({
el : elname,
data : {
data : {}
}
})
obj.callback = function() {
return function(result) {
for ( var key in result) {
Vue.set(obj[elname].data, key, result[key]);
}
}
}
}
$.ajax({
url : ajaxpa.url,
data : ajaxpa.data,
type : ajaxpa.type,
dataType : "json",
success : obj.callback()
})
}

binding.js

在html页面这样调用:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table id="t_table2">
<tr>
<td>{{data.name}}</td>
</tr>
</table>
<script type="text/javascript" src="static/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="static/vue.min.js"></script>
<script type="text/javascript" src="static/binding.js"></script>
<script type="text/javascript">
binding("#t_table2", {
url : "people",
data : {},
type : "get"
})
</script>
</body>
</html>

NewFile.html

后台代码部分更是简单:

package red.lille.entity;

public class People {
private String name = "张三"; public People() {
} public People(String name) {
// TODO Auto-generated constructor stub
if (name != null) {
this.name=name;
}
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

People.java

package red.lille.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import red.lille.entity.People; @Controller
public class AjaxController { @ResponseBody
@RequestMapping("/people")
public People getPeople(@RequestParam(value="name",required=false)String name) {
return new People(name);
}
}

AjaxController.java

最终实现的效果:

话说回来,只看html页面的话还真挺像jsp的EL表达式的

js从后台取值并绑定到元素上的更多相关文章

  1. Webform动态创建删除行及后台取值

    开发过程中经常碰到许多不确定事项,所以有时需要动态生成新的记录,如图所示,点击新增时新增一条参考记录,点击删除时则删除该记录:第一步,创建一个表格,用hidden记录当前最大行数,添加时则只需复制模板 ...

  2. 前台改变asp button控件的值,后台取值没有改变的问题

    前台: <asp:Button ID="btnEdit" Style="margin-left: 600px;" runat="server&q ...

  3. chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同

    chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同 chrome 获得的是不含路径的纯文件名 IE获得的是含路径的文件名

  4. js对div取值与赋值

    js对div取值与赋值 因为JavaScript运行时,id="test1" 的那个div元素可能还没解析和加载,js加载是有顺序的.只需把 js 整个搬到 后面即可. 还有一个特 ...

  5. CYQ.Data 快速开发之UI(赋值、取值、绑定)原理

    昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...

  6. omDialog设计造成控件无法后台取值

    http://ui.operamasks.org/website/homepage.html 使用服务端控件,前台进行赋值,但后台确无法取值. 不仅如此,如果里面放置了一个ASp:Button同样无法 ...

  7. .net TxetBox控件设置ReadOnly=True后台取值问题

    1.为TxetBox添加onfocus=this.blur()进行模拟 2.通过 Request.From["TextBox"].Trim()取值; 3.后台CS文件设置TextB ...

  8. asp.net textbox控件readonly为true时,后台取值的问题

    如题,在后台通过textbox.Text方式取值为空,不论你默认值是否是空,如想要获得,需通过request.Form[""]的方式.

  9. ASP.NET页面使用JQuery EasyUI生成Dialog后台取值为空

    原因: JQuery EasyUI生成Dialog后原来的文档结构发生了变化,原本在form里的内容被移动form外面,提交到后台后就没有办法取值了. 解决办法: 在生成Dialog后将它append ...

随机推荐

  1. C# Winform 跨线程更新UI控件常用方法总结(转)

    出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件 ...

  2. windows 安装 mysql5.7.17

    下载mysql 进入官网:https://www.mysql.com/ 单击[Downloads]选项卡 最下面有个[  MySQL Community Edition (GPL)],单击[Commu ...

  3. ngix 创建新的网站

    1. 进入ngix 的目录的conf 目录 的 vhosts 2. 复制一份新的v2.edc.com.conf 3. server_name : v2.edc.com root :  /ali/... ...

  4. composer 更新

    composer self-update --preview 清除缓存 composer clearcache

  5. java中Integer常量池

    我们先看一个关于Integer的例子 public static void main(String[] args) { // TeODO Auto-generated method stu Integ ...

  6. 【Linux】GDB查看栈信息(转)

    在调试程序的过程中,查看程序的函数调用堆栈是一项最基本的任务,几乎所有的图形调试器都支持这项特性. GDB调试器当然也支持这一特性,但是功能更加灵活和丰富. GDB将当前函数的栈帧编号为0,为外层函数 ...

  7. python字符串字典列表互转

    #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ' ...

  8. [LeetCode 题解]: pow(x,n)

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Implement po ...

  9. 知物由学 | 如何利用人工智能来对抗DDoS攻击?

    欢迎访问网易云社区,了解更多网易技术产品运营经验. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理 ...

  10. git 分支同步master最新代码

    查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>创建+切换分支:git checkout -b < ...