<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--引入bootstrap.min.css样式表,本例中css文件和本页面在同一个路径下 --> <link rel="stylesheet" href="bootstrap.min.css"> <script src="vue.js"></script> </head> <body> <div id="app"> <div class="panel panel-primary"> <div class="panel-heading"> <h2>图书管理系统</h2> </div> <div class="panel-body form-inline"> <label>id: </label><input type="text" class="form-control" v-model="id" disabled> <label>name: </label><input type="text" class="form-control" v-model="name" onchange="onchange(id)"> <input type="button" value="添加" class="btn btn-primary" @click. ="add" :disable="isEditable"> </div> <table class="table table-bordered table-hover"> <thead> <tr> <td>id</td> <td>name</td> <td>time</td> </tr> </thead> <tbody> <tr v-for="book in books" :key="book.id"> <td>{{book.id}}</td> <td>{{book.name}}</td> <td>{{book.time}}</td> <td><a href="" onclick.prevent="del(book.id)" >删除</a></td> </tr> </tbody> </table> </div> </div> <script src="vue.js"></script> <script> let app = new Vue({ el: '#app', data: { id:0, name:'', books:[ {'id':1,'name':'Vue.js入门','time':new Date()} ], isEditable:true }, mounted(){ this.id=this.books.length+1 console.log(this.id) }, method:{ onchange(){ if (this.name!=''){ this.isEditable=false }else{ this.isEditable=true } }, add(){ this.books.push({'id':this.id,'name':this.name,'time':new Date()}) this.id++ this.name='' }, del(id){ let index=this.books.findIndex((item)=>{ if(item.id==id){ return true } }) this.books.splice(index,1) } } }) </script> </body> </html> 补充代码
时间: 2023-08-14 07:50:03 浏览: 98
这段代码是一个简单的图书管理系统的前端页面,使用了Vue.js框架进行开发。其中包含了一个表单,用于添加新书籍,以及一个表格,用于展示已有的书籍信息,并可以进行删除操作。
需要补充的代码:
1. 引入Vue.js和bootstrap.min.css样式表的文件路径。
2. 在mounted()钩子函数中,将id初始化为books数组长度加1,保证每次添加新书籍时id的自增。
3. 在method对象中,添加onchange()、add()和del()三个方法,分别用于判断表单是否为空、添加新书籍和删除指定书籍。需要注意的是,@click和:disabled属性中的点号都是错误的,需要更正为"."。
相关问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Not found</title> </head> <body> <h1>Not found</h1> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Not found</title> </head> <body> <h1>Not found</h1> </body> </html>是一个HTML页面模板,它是一个简单的404页面,用于显示“Not found”错误信息。在这个模板中,<!DOCTYPE html>定义了文档类型,<html>标签定义了HTML文档的根元素,<head>标签定义了文档的头部部分,<meta charset="UTF-8">指定了文档的字符编码为UTF-8,<title>标签定义了文档的标题,<body>标签定义了文档的主体部分,<h1>标签定义了一个一级标题。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Cannot POST /</pre> </body> </html>
<!DOCTYPE html>是一个HTML5文档的声明,它告诉浏览器这是一个使用标准通用标记语言(SGML)的文档,并且使用HTML5的规范。在给定的代码片段中,这位于HTML文档的开头,用于指示文档类型。
`<html lang="en">` 表示整个文档的语言是英语(en)。
`<head>` 部分包含了页面的元信息,如字符集 `<meta charset="utf-8">`,设置了文档的编码为UTF-8,这对于支持各种字符的网页非常重要。`<title>Error</title>` 定义了浏览器标签页上显示的标题,这里显示的是"Error"。
`<body>` 标签下的内容是用户看到的实际页面内容。在这个例子中,`<pre>Cannot POST /</pre>` 是一个预格式化文本块,通常用于显示代码或错误消息。"Cannot POST /" 显然是一个HTTP错误提示,表示尝试向服务器发送POST请求到"/"路径时发生了问题,可能是因为该URL无法处理POST请求或者是请求方法被服务器明确禁止。