鍍金池/ 問答
空痕 回答

這樣嗎?好像沒什么意義呀

var arr = [];for(var i in json){arr.push({title: i,content:json[i]})}

clipboard.png

DOM操作?是要變成DOM節(jié)點嗎?無非就是遍歷然后字符串拼接嘛

var str = '<ul>';for(var i in json){str+=`<li><h4>${i}</h4>${json[i]}</li>`};str+='</ul>'

clipboard.png

爛人 回答

nginx沒有配置靜態(tài)文件緩存?

舊城人 回答

list.0這個屬性取不到,0是數(shù)字而不是普通的字符串字面量。

正確的用法應該是list[0]。

瞄小懶 回答

mybatis 的話這個可以實現(xiàn)的, 我之前是寫過一個類似的

表結(jié)構(gòu):

CREATE TABLE `admin_menu` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `name` varchar(64) NOT NULL COMMENT '菜單名',
  `parent_id` bigint(3) NOT NULL DEFAULT 0 COMMENT '父菜單的id, 如果是父菜單這個值為0',
  `url` varchar(500) NOT NULL DEFAULT '' COMMENT '菜單的鏈接',
  `icon` varchar(100) NOT NULL DEFAULT '' COMMENT '圖標',
  `menu_index` bigint(3) NOT NULL DEFAULT 0 COMMENT '展示的順序',
  `create_time` datetime NOT NULL COMMENT '創(chuàng)建時間',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新時間',
  PRIMARY KEY (`id`),
  KEY `uq_id` (`id`),
  KEY `uq_parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='管理后臺的菜單';

其中parentId 跟你的typeParent類似, 記錄上一級的id


AdminMenu (Model):

public class AdminMenu implements Serializable {

    private static final long serialVersionUID = -6535315608269812875L;
    private int id;
    private String name;
    private int parentId;
    private String url;
    private String icon;
    private int menuIndex;
    private Date createTime;
    private Date updateTime;
    private List<AdminMenu> subMenus;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getParentId() {
        return parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public int getMenuIndex() {
        return menuIndex;
    }

    public void setMenuIndex(int menuIndex) {
        this.menuIndex = menuIndex;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public List<AdminMenu> getSubMenus() {
        return subMenus;
    }

    public void setSubMenus(List<AdminMenu> subMenus) {
        this.subMenus = subMenus;
    }

    @Override
    public String toString() {
        return JsonUtil.toJson(this);
    }
}

Model的屬性跟表結(jié)構(gòu)一一對應, 最下面多了一個subMenu, 里面就是AdminMenu


下面是admin_menu.xml中的內(nèi)容

查詢SQL:

<select id="selectAllMenus" resultMap="adminMenuResult">
    SELECT
        id, name, parent_id, url, icon, menu_index, create_time, update_time
    FROM
      admin_menu
    WHERE parent_id=0
    ORDER BY menu_index
</select>

這里返回的就是adminMenuResult結(jié)果集:

<resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="parent_id" property="parentId"/>
    <result column="url" property="url"/>
    <result column="icon" property="icon"/>
    <result column="menu_index" property="menuIndex"/>
    <result column="create_time" property="createTime"/>
    <result column="update_time" property="updateTime"/>
    <association property="subMenus" column="id" select="selectSubMenus"/>
</resultMap>

其中這一行是最重要的

 <association property="subMenus" column="id" select="selectSubMenus"/>

這里用selectSubMenus來進行了另一個查詢, 查詢的參數(shù)為id, 把查詢出來的結(jié)果放在Model中的subMenus屬性中.

selectSubMenus查詢SQL:

<select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
    select
      id, name, parent_id, url, icon, menu_index, create_time, update_time
    from admin_menu
    where parent_id = #{id}
    order by menu_index
</select>

這里就是用第一層的id來查詢有沒有子菜單. 這里的#{id}就是上面那個結(jié)果集的column參數(shù).
因為我只有兩層菜單, 所以這里用了一個新的結(jié)果集,跟上面的區(qū)別就是沒有subMenus字段.

adminSubMenuResult:

<resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="parent_id" property="parentId"/>
    <result column="url" property="url"/>
    <result column="icon" property="icon"/>
    <result column="menu_index" property="menuIndex"/>
    <result column="create_time" property="createTime"/>
    <result column="update_time" property="updateTime"/>
</resultMap>

如果你有三,四級的話你可以一個結(jié)果集. (第一層查詢的時候用id去查詢第二層, 第二層查詢的時候用第二層的id去查詢第三層...)


下面我貼一下整個的admin_menu.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="biz.menzil.admin.core.dao.AdminMenuDao">

    <resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="url" property="url"/>
        <result column="icon" property="icon"/>
        <result column="menu_index" property="menuIndex"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <association property="subMenus" column="id" select="selectSubMenus"/>
    </resultMap>

    <resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="url" property="url"/>
        <result column="icon" property="icon"/>
        <result column="menu_index" property="menuIndex"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>

    <insert id="insertAdminMenu">
        INSERT INTO admin_menu(name, parent_id, url, icon, menu_index, create_time)
        VALUES (
        #{menu.name},
        #{menu.parentId},
        #{menu.url},
        #{menu.icon},
        #{menu.menuIndex},
        NOW()
        )
    </insert>

    <select id="selectById" resultMap="adminMenuResult">
        SELECT
            id, name, parent_id, url, icon, menu_index, create_time, update_time
        FROM
          admin_menu
        WHERE id = #{id}
    </select>

    <select id="selectAllMenus" resultMap="adminMenuResult">
        SELECT
            id, name, parent_id, url, icon, menu_index, create_time, update_time
        FROM
          admin_menu
        WHERE parent_id=0
        ORDER BY menu_index
    </select>

    <select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
        select
          id, name, parent_id, url, icon, menu_index, create_time, update_time
        from admin_menu
        where parent_id = #{id}
        order by menu_index
    </select>

    <delete id="deleteAdminMenu">
        DELETE FROM
        admin_menu
        WHERE id=#{id}
    </delete>

    <update id="updateAdminMenu" >
        UPDATE admin_menu
        <set>
            <if test="menu.name != null and menu.name != ''">
                name=#{menu.name},
            </if>
            <if test="menu.parentId >= 0">
                parent_id=#{menu.parentId},
            </if>
            <if test="menu.url != null and menu.url != ''">
                url=#{menu.url},
            </if>
            <if test="menu.icon != null and menu.icon != ''">
                icon=#{menu.icon},
            </if>
            <if test="menu.menuIndex > 0">
                menu_index=#{menu.menuIndex},
            </if>
        </set>
        WHERE id=#{menu.id}
    </update>

</mapper>
礙你眼 回答

這種東西一搜一大把。。。。。。
點這

臭榴蓮 回答

es 默認返回前1w條數(shù)據(jù) 可以把限制放大試試

懶豬 回答

background-size: 100% 100%;

這樣試試?

悶騷型 回答
data(){
    return {
        routeName: 'A'
    }
}
watch:{
    '$route':function(to,from){
        this.routeName = to.name
    }
}

然后用routeName去判斷哪個該高亮

筱饞貓 回答

HTMLButtonElement本身有個disabled屬性,所以,你可以用$(this).prop('disabled', true);試試~

解夏 回答

pc站就建議 jQuery require 就行了??由佟?/p>


再詳細說下:

1,既然pc站,那兼容性問題就是首要問題;如果不幸要兼容ie8,那vue等框架的確干不了。不過百度出了一個san據(jù)說兼容性做的可以,但是生態(tài)環(huán)境是否完善,這個也影響著技術選型;

2,另外,就算拋開ie8, 如果要做服務器渲染(就是應對seo問題),雖然vue有服務器渲染策略,但是沒經(jīng)驗得話...這個坑看你們是否有精力去填;

3,jquery畢竟相關插件多,基本所有開發(fā)要求都有可以有相關的支持,配合require也是一套不錯的解決方案。這個可以配合gulp使用,效果不錯。如果喜歡commonjs規(guī)范,也可以把webpack拉進來做模塊化的支持(如果為了ie8,貌似版本只能最高到1.3x吧)。

4,不用模板引擎,相當于到時候直接輸出得是html靜態(tài)內(nèi)容,如果要動態(tài)輸出那就尷尬了。再說,比如ejs等,和html差別不大,那就是還是用吧!

雅痞 回答

401 授權失敗,,百度下就知道了,登錄信息有問題

黑與白 回答

yml文件的好處,天然的樹狀結(jié)構(gòu),一目了然,實質(zhì)上跟properties是差不多的。

熊出沒 回答

其實這個圖叫做骨架屏,由于vue在數(shù)據(jù)渲染出來之前會出現(xiàn)NAN或者undefined,用戶體驗感非常不好,我們可以巧妙的避免這個問題,在請求接口返回數(shù)據(jù)之前顯示骨架屏,待數(shù)據(jù)請求成功返回,隱藏骨架屏,顯示數(shù)據(jù)。

/*設置全屏的骨架屏背景圖*/
<div class="skeleton" v-if="skeleton"></div>
    
created() {
    /*是否顯示骨架屏*/
    skeleton: true
}
methods() {
   fetchData().then(res => {
       console.log('數(shù)據(jù)請求成功')
        /*隱藏骨架屏*/
        this.skeleton = false
    }).catch(err => {
        this.skeleton = false
    }) 
}
寫榮 回答

你可以通過配置文件配置一個靜態(tài)的,也可以在系統(tǒng)啟動的時候隨機生成一個。反正只要這個秘鎖不會被攻擊者猜到就OK。

做不到 回答

你的意思tab加點擊高亮么?
可以給tab 渲染的數(shù)據(jù)加屬性 循環(huán)的時候設置data-index={{index}} 點擊的時候處理 通過active屬性渲染高亮class

data:{
tabIndex:0
}
var tabList=[{name:'a',active:true},{name:'a',active:false},{name:'a',active:false}]
changeTab:function(e){
    var index=e.target.getAttribute('data-index'),
    tabList[index].active=true
    tabList[this.data.tabIndex].active=false
}