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 相关文章推荐
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
Jul 25 Javascript
js获取本机的外网/广域网ip地址完整源码
Aug 12 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
javascript关于运动的各种问题经典总结
Apr 27 Javascript
JS中字符串trim()使用示例
May 26 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
Sep 01 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
基于js 本地存储(详解)
Aug 16 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 Javascript
JS实现吸顶特效
Jan 08 Javascript
浅谈es6中的元编程
Dec 01 Javascript
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
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
解析yii数据库的增删查改
2013/06/20 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中的sort()方法使用基础教程
2017/01/08 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
计算机科学系职业生涯规划书
2014/03/08 职场文书
企业务虚会发言材料
2014/10/20 职场文书
作风建设整改方案
2014/10/27 职场文书
歌舞青春观后感
2015/06/10 职场文书
董事长致辞
2015/07/29 职场文书
小学校长开学致辞
2015/07/29 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
JavaScript实现两个数组的交集
2022/03/25 Javascript