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 09 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
AngularJS ng-controller 指令简单实例
Aug 01 Javascript
原生js实现ajax方法(超简单)
Sep 20 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
JS控制下拉列表左右选择实例代码
May 08 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
Python元组知识点总结
2019/02/18 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
学生思想表现的评语
2014/01/30 职场文书
安全生产演讲稿
2014/05/09 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers
python如何将mat文件转为png
2022/07/15 Python