qq20739111

qq20739111 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑

www.leilei.name

个人动态

qq20739111 赞了回答 · 2017-04-01

解决vue 数据不更新的问题

首先,watch 没有触发的原因是少了 deep 属性的设置

其次,field_table_change 是在第一个 select 发生改变之后才会触发的,因此不改变第一个列表就不会执行 $set 语句,因此第二个列表是没有数据的。

可以考虑改为对 table 字段设置一个 immediate 的 watch。

关注 2 回答 1

qq20739111 关注了问题 · 2017-04-01

解决vue 数据不更新的问题

html代码如下:

<div class="db_api_tr">
    <span class="db_api_span">数据表</span>
    <el-select style="padding:10px 8px;" v-model="form.public_data.field_bind[scope.row].version.table" placeholder="请选择数据表"  @change="field_table_change(scope.row)">
       <el-option v-for="(v,k) in db_api_data.table_datas" :label="v" :value="v" >
       </el-option>
   </el-select>
</div>
<div class="db_api_tr">
    <span class="db_api_span">字段</span>
   <el-select style="padding:10px 8px;" v-model="form.public_data.field_bind[scope.row].version.field" placeholder="请选择字段" >
      <el-option v-for="(v,k) in db_api_data.table_fields[form.public_data.field_bind[scope.row].version.table].data"   :label="v.Field" :value="v.Field">
      </el-option>
   </el-select>
</div>

界面上看是这样的。

clipboard.png

第一个select是数据表,然后切换数据表,下面的数据表字段随之更新。
所以,第二个select的数据来源于第一个的切换的数据变化。

切换的函数如下:

field_table_change:function (a)    {
    this.$set(this.db_api_data.table_fields.reply, 'data', [{Field:'哈哈'}]);
}

本来这里是异步请求的,现在我把问题简化了。所以,现在问题就是明明数据源更新了,但是dom没更新。
如果我反复切换第一个select,就可以了。我不明白这是为什么。

我在watch监听数据的变化

db_api_data: function (newVal, oldVal) {
    console.log('更新了。。。。。。。。');
    console.log(newVal);
    console.log(oldVal);
},

但切换select的时候,这里没有触发过。

-----------补充--------------

这几天制作了一个demo。地址:https://git.oschina.net/milu/...

bug重新方式:

clipboard.png

我在vue的文档里面看到:

由于 Vue 不允许动态添加根级响应式属性,所以你必须在初始化实例前声明根级响应式属性,哪怕只是一个空值:

这意味着,如果一个属性,如果你不实现声明,后面再增加,他不能检测到变化。
对于一些固定的结构,这是可以做到的。比如我知道一个obj里面必然有key1、key2属性,我可以事先初始化。如果这些东西是动态的,我没法事先声明。后面再增加,vue没法检测到变化了。

为了证实这个猜想,我把本例的数据结构,全部初始化。就可以了。
但是实际生产环境,因为有些数据结构的key都是未知的,所以不能这样做。

-----------------------补充-----------------------------

历经2天,终于自己解决了。
解决的办法。
比如,你自己数据定义了

{
    db_api_data:{}
}

数据更新那就必须这样设置

mainVue.$set(vm, 'db_api_data', {table_fields:{reply:{data:[{Field:'134353453'}]}}} )

如果这样,就不行。

mainVue.$set(vm.db_api_data, 'table_fields', {reply:{data:[{Field:'abcdef'}]}} )

关注 2 回答 1

qq20739111 关注了问题 · 2017-02-15

解决css大div里面放小div,小div设置margin-top属性,为什么大div也飘起来了,有图

cssclipboard.png

关注 16 回答 9

qq20739111 赞了回答 · 2017-02-15

解决css大div里面放小div,小div设置margin-top属性,为什么大div也飘起来了,有图

因为CSS中存在一个margin collapse,即边界塌陷或者说边界重叠。对于上下两个并列的div块而言,上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值,所以从这个意义上说:CSS及浏览器的设计者们希望我们在布局时,如果遇到上下两个并排内容块的安排,最好只设置其中每个块上或下margin的一处即可。

但对于父块DIV内含子块DIV的情况,就会按另一条CSS惯例来解释了,那就是:对于有块级子元素的元素计算高度的方式,如果元素没有垂直边框和填充,那其高度就是其子元素顶部和底部边框边缘之间的距离。所以对于代码:

点击(此处)折叠或打开

<div class="father"></div>

father这个div的高度为0,因为里面没有能够撑开div的内容。如果变为:

点击(此处)折叠或打开

<div class="father">I am here.</div>

则高度就是文字的高度,因为此时文字在撑着这个DIV。
话说回来,一个DIV和它的子DIV特别重视垂直边框或填充,也就好像是,一口锅,里面放个盆,能不能扣住里面的盆,主要看锅盖了,垂直边框或填充就是这个“锅盖”。于是解决的方式至少有以下两种:

结论:
解决父子DIV中顶部margin cllapse的问题,需要给父div设置:
1、边框,当然可以设置边框为透明;

点击(此处)折叠或打开

border:1px solid transparent

border-top:1px solid transparent

2、为父DIV添加padding,或者至少添加padding-top;
此外,还可以通过over-flow来解决,给父DIV写入:

关注 16 回答 9

qq20739111 关注了问题 · 2016-12-27

api域名需要设置为内网访问吗?

县,www.xxx.com与api.xxx.com在同一服务器不同项目下。

在前后端分离的情况下,www.xxx.com请求api.xxx.com的数据。

有必要将api.xxx.com的域名改成内网吗?比如www.xxx.com访问127.0.0.1:80。这有什么优势吗?

这又牵扯到另一个话题了:前后端分机器部署,又有什么优势?

关注 3 回答 1

qq20739111 提出了问题 · 2015-07-26

centos 下 apache httpd老是自动关闭,请问怎么回事,请帮分析一下?

今天早上起来发现网站打不开了,估计又是httpd自动关闭了,于是打开重启了一下服务。果然。

已经出现好几次了。请问怎么排查问题?(下图1)

图片描述

日志:(下图2)

clipboard.png

access_log 文件为空,我很纳闷,修改时间是昨晚三点,感觉是被清空了。(下图3)

clipboard.png

error_log 里面只有这几行。都是今早上自己访问的记录。(下图4)

图片描述

error_log-20150726的日志:(下图5)

clipboard.png

top(下图6):

clipboard.png

前几次也是晚上3点左右关闭的。

在其中一个网站的日志里面找到,其中有一个36.99.30.46(河南省洛阳市 电信)的ip访问过之后,没记错的话上次出问题,当时检查了一下也看到一个河南省洛阳市的ip访问过,之后的日志就没有了。不会是被人攻击了吧。:(下图7)

图片描述


补充一下:

刚才看了一下/var/log/messages
里面在3:06:01秒也有状况,但是看不懂是什么意思。

图片描述(图8)

贴文字:

Jul 26 03:06:01 iZ622symbn1Z rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="816" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty1) main process (990) killed by TERM signal
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty2) main process (992) killed by TERM signal
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty3) main process (994) killed by TERM signal
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty4) main process (996) killed by TERM signal
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty5) main process (998) killed by TERM signal
Jul 26 10:09:05 iZ622symbn1Z init: tty (/dev/tty6) main process (1000) killed by TERM signal
Jul 26 10:09:12 iZ622symbn1Z kernel: Kernel logging (proc) stopped.
Jul 26 10:09:12 iZ622symbn1Z rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="816" x-info="http://www.rsyslog.com"] exiting on signal 15.
Jul 26 10:10:24 iZ622symbn1Z kernel: imklog 5.8.10, log source = /proc/kmsg started.
Jul 26 10:10:24 iZ622symbn1Z rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="821" x-info="http://www.rsyslog.com"] start
Jul 26 10:10:24 iZ622symbn1Z kernel: Initializing cgroup subsys cpuset
Jul 26 10:10:24 iZ622symbn1Z kernel: Initializing cgroup subsys cpu
Jul 26 10:10:24 iZ622symbn1Z kernel: Linux version 2.6.32-431.23.3.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Thu Jul 31 17:20:51 UTC 2014
Jul 26 10:10:24 iZ622symbn1Z kernel: Command line: ro root=UUID=94e4e384-0ace-437f-bc96-057dd64f42ee rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
Jul 26 10:10:24 iZ622symbn1Z kernel: KERNEL supported cpus:
Jul 26 10:10:24 iZ622symbn1Z kernel:  Intel GenuineIntel
Jul 26 10:10:24 iZ622symbn1Z kernel:  AMD AuthenticAMD
Jul 26 10:10:24 iZ622symbn1Z kernel:  Centaur CentaurHauls

这是日志文件的开头了,也是从Jul 26 03:06:01开始的,之前的记录似乎没了。。


继续补充:

刚才在找到一个叫:cron-2015-0726的日志文件:

文件尾的内容如下:

Jul 26 01:40:01 iZ622symbn1Z CROND[4457]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 01:50:01 iZ622symbn1Z CROND[4507]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:00:01 iZ622symbn1Z CROND[4537]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:01:01 iZ622symbn1Z CROND[4539]: (root) CMD (run-parts /etc/cron.hourly)
Jul 26 02:01:01 iZ622symbn1Z run-parts(/etc/cron.hourly)[4539]: starting 0anacron
Jul 26 02:01:01 iZ622symbn1Z anacron[4550]: Anacron started on 2015-07-26
Jul 26 02:01:01 iZ622symbn1Z anacron[4550]: Jobs will be executed sequentially
Jul 26 02:01:01 iZ622symbn1Z anacron[4550]: Normal exit (0 jobs run)
Jul 26 02:01:01 iZ622symbn1Z run-parts(/etc/cron.hourly)[4552]: finished 0anacron
Jul 26 02:10:01 iZ622symbn1Z CROND[4556]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:20:01 iZ622symbn1Z CROND[4564]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:30:01 iZ622symbn1Z CROND[4569]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:40:01 iZ622symbn1Z CROND[4571]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 02:50:01 iZ622symbn1Z CROND[4603]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 03:00:01 iZ622symbn1Z CROND[4622]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 03:01:01 iZ622symbn1Z CROND[4624]: (root) CMD (run-parts /etc/cron.hourly)
Jul 26 03:01:01 iZ622symbn1Z run-parts(/etc/cron.hourly)[4624]: starting 0anacron
Jul 26 03:01:01 iZ622symbn1Z anacron[4635]: Anacron started on 2015-07-26
Jul 26 03:01:01 iZ622symbn1Z anacron[4635]: Will run job `cron.daily' in 5 min.
Jul 26 03:01:01 iZ622symbn1Z run-parts(/etc/cron.hourly)[4637]: finished 0anacron
Jul 26 03:01:01 iZ622symbn1Z anacron[4635]: Jobs will be executed sequentially
Jul 26 03:06:01 iZ622symbn1Z anacron[4635]: Job `cron.daily' started
Jul 26 03:06:01 iZ622symbn1Z run-parts(/etc/cron.daily)[4638]: starting logrotate

看了一下logrotate的配置文件如下:

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

关注 2 回答 1

qq20739111 提出了问题 · 2015-07-22

正准备提问题,结果segmentfault怎么503了?

图片描述

图片描述

图片描述

图片描述

图片描述

刚才的事情。

关注 2 回答 1

qq20739111 回答了问题 · 2015-07-22

解决请问typecho模板如何根据“独立页面”的slug,调用“独立页面”下的内容呢?

居然没人来帮助,已自解决。

<?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
<?php while($pages->next()): ?>
    <?php if ($pages->slug == 'about-page'): ?>
        <?php $pages->content(); ?>
    <?php endif; ?>
<?php endwhile; ?>

仅通过系统提供的方式调用,有没有更好的方案?

关注 1 回答 1

qq20739111 提出了问题 · 2015-07-21

解决请问typecho模板如何根据“独立页面”的slug,调用“独立页面”下的内容呢?

请问typecho模板如何根据“独立页面”的slug,调用“独立页面”下的内容呢?

我想将具体某个独立页面的内容显示到首页的某个栏目里面,如:页面的url,标题,作者等。请问如何根据页面的slug调用?

关注 1 回答 1

qq20739111 回答了问题 · 2015-07-20

解决请问typecho模板如何调用某一文章分类下面的文章呢?

已自解决。

<?php $this->widget('Widget_Archive@index', 'type=category', 'mid=5')->to($categoryPosts); ?>
<?php while($categoryPosts->next()): ?>
    <li><a href="<?php $categoryPosts->permalink(); ?>" title="<?php $categoryPosts->commentsNum('%d Comments'); ?>"><?php $categoryPosts->title(); ?></a></li>
<?php endwhile; ?>

widget('Widget_Archive@myCustomCategory', 'type=category', 'mid=5')

改为

widget('Widget_Archive@index', 'type=category', 'mid=5')

@ 后面是为了区分多次调用。

关注 2 回答 2

认证与成就

  • 获得 5 次点赞
  • 获得 21 枚徽章 获得 2 枚金徽章, 获得 7 枚银徽章, 获得 12 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2015-03-27
个人主页被 246 人浏览