vuejs实现ready函数加载完之后执行某个函数的方法


Posted in Javascript onAugust 31, 2018

vue.js 教程

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。
Vue 只关注视图层, 采用自底向上增量开发的设计。
Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

我期望vue中tds全都渲染在界面上之后,再调用一个函数(其实这个函数主要作用是给表格中的选择框加监听,如果tds没有渲染,那监听也加不上去)。

<div class="row" id="app">
  <div class="col-sm-12 col-md-12 main">
   <table class="table table-bordered table-striped">
    <thead>
    <tr>
     <th><input type="checkbox" id="checkAll" name="checkAll" /></th>
     <th>日期</th>
     <th>任务</th>
     <th>是否执行</th>
     <th>执行结果</th>
     <th>影响行数</th>
     <th>执行时间</th>
     <th>执行时长</th>
     <th>成功率</th>
     <th>操作</th>
    </tr>
    </thead>
    <tbody id="trs">
    <tr v-for="td in tds">
     <td><input type="checkbox" name="checkItem" /></td>
     <td>{{td.date}}</td>
     <td>{{td.job}}</td>
     <td>{{td.is_done==0?'未执行':'已执行'}}</td>
     <td>{{td.is_success==0?'成功':(td.is_success==1?'失败':'')}}</td>
     <td>{{td.nums}}</td>
     <td>{{td.begintime}}</td>
     <td>{{td.usedtime}}</td>
     <td>{{td.rate}}</td>
     <td v-if="td.is_done==0">
     </td>
     <td v-if="td.is_done==1">
      <button v-on:click="rerun($index,td.monitor_id)" type="button" class="btn btn-default btn-xs"
        style="padding:1px 10px;margin-top:-3px;margin-bottom:-2px;">重跑
      </button>
     </td>
    </tr>
    </tbody>
   </table>
  </div>
  <!--/.main -->
 </div>

尝试了

Vue.nextTick(function () {
 alert('new message'); // true
})

无效,在tds未展示在界面上时就alert了。

尝试了

vm.$nextTick(function () {
 alert('new message'); // true
})

也无效,在tds未展示在界面上时就alert了。

最后解决办法是增加一个vm.$watch('tds',function(val){ })函数,在vm改变后调用nextTick,最终可以在tds展示在界面之后调用我想要的函数。

var vm = new Vue({
  el: '#app',
  ready: function () {
   $.getJSON("/main/getMonitor", {"beginDate": getTheDate(-2), "endDate": getTheDate(0)}, function (result) {
    vm.$set('tds', result);
   });
  },
  data: {
   start: getTheDate(-2),
   end: getTheDate(0),
   isupdate: 0
  },
// computed: {
// // 一个计算属性的 getter
// tds: function () {
//  var myr="";
//  $.getJSON("/main/getMonitor", {"beginDate": getTheDate(-2),"endDate": getTheDate(0)}, function (result) {
//  myr= result;
//  });
//  return myr;
// }
// },
  methods: {
   rerun: function (index, monitor_id) {
    var button = $('#trs').children().eq(index).children().eq(9).children().eq(0);
    button.prop('disabled', true);
    button.html('重跑中<span class="dotting"></span>');
//    $.getJSON("http://m.o2.qq.com/Api/rerunMonitor", {"monitorID": monitor_id}, function (result) {
//     console.log(result);
//     vm.isupdate=(this.isupdate==0?1:0);
//     button.html('重跑');
//     button.prop('disabled', false);
//    });
    $.ajax({
     url: "http://m.o2.qq.com/Api/rerunMonitor",
     // The name of the callback parameter, as specified by the YQL service
     jsonp: "callback",
     // Tell jQuery we're expecting JSONP
     dataType: "jsonp",
     // Tell YQL what we want and that we want JSON
     data: {
      monitorID: monitor_id
     },
     // Work with the response
     success: function (response) {
      console.log(response); // server response
      vm.isupdate = (vm.isupdate == 0 ? 1 : 0);
      button.html('重跑');
      button.prop('disabled', false);
     }
    });
   }
  }
 })
 vm.$watch('start', function (val) {
  $.getJSON("/main/getMonitor", {"beginDate": val, "endDate": this.end}, function (result) {
   vm.tds = result;
  });
 })
 vm.$watch('end', function (val) {
  $.getJSON("/main/getMonitor", {"beginDate": this.start, "endDate": val}, function (result) {
   vm.tds = result;
  });
 })
 vm.$watch('isupdate', function (val) {
  $.getJSON("/main/getMonitor", {"beginDate": this.start, "endDate": this.end}, function (result) {
   vm.tds = result;
  });
 })
 vm.$watch('tds',function(val){
  vm.$nextTick(function() {
   initTableCheckbox();
  });
 })

总结

以上所述是小编给大家介绍的vuejs实现ready函数加载完之后执行某个函数的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
jQuery qrcode生成二维码的方法
Apr 03 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
JS给按钮添加跳转功能类似a标签
May 30 Javascript
微信小程序 共用变量值的实现
Jul 12 Javascript
JavaScript find()方法及返回数据实例
Apr 30 Javascript
JS实现字符串翻转的方法分析
Aug 31 #Javascript
angular实现input输入监听的示例
Aug 31 #Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 #Javascript
Angular2中监听数据更新的方法
Aug 31 #Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 #Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 #Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 #Javascript
You might like
Mysql的常用命令
2006/10/09 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
Node.js事件驱动
2015/06/18 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Python简单实现子网掩码转换的方法
2016/04/13 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
利用Python实现kNN算法的代码
2019/08/16 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
中学清明节活动总结
2014/07/04 职场文书
领导干部失职检讨书
2015/05/05 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
2022年显卡天梯图(6月更新)
2022/06/17 数码科技