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 相关文章推荐
javascript 闭包疑问
Dec 30 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
vue全屏事件开发详解
Jun 17 Javascript
一分钟学会JavaScript中的try-catch
Dec 14 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
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
php的常量和变量实例详解
2017/06/27 PHP
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python单例模式实例分析
2015/01/14 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Keras loss函数剖析
2020/07/06 Python
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
超市5.1促销活动
2014/01/15 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
诚信考试标语
2014/06/24 职场文书
使用python绘制横竖条形图
2022/04/21 Python