在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答
伐木累 回答

Vue 是 MVVM 框架,在所有的 MVVM 框架當中,我們都應(yīng)當忽略 DOM 結(jié)構(gòu),想辦法用抽象數(shù)據(jù)的方式去操作。

當你脫開 DOM 的限制,從數(shù)據(jù)的方向看過去的時候,就沒什么復(fù)雜的了。

  1. 首先,這個 checkbox 應(yīng)該關(guān)聯(lián)一個值,比如 list[n].isSelect
  2. 當你打開彈窗的時候,把這個節(jié)點的對象傳給彈窗
  3. 當點擊確定或者取消的時候,操作這個對象的值
  4. 剩下的交給 Vue
情殺 回答

router 里有個 render 屬性,不知道能不能解決你的問題。

import { Route, Redirect } from 'react-router'

<Route exact path="/" render={() => (
  loggedIn ? (
    <Redirect to="/dashboard"/>
  ) : (
    <PublicHomePage/>
  )
)}/>

然后官網(wǎng)有個這樣的 demo

葬憶 回答

加一個flag:false標記,只要某一項數(shù)據(jù)發(fā)生變化 flag=true.僅當flag=true的時候才可以進行保存。
flag=false時按鈕置灰或者點擊進行提示

鹿惑 回答

TabNavigator已經(jīng)被遺棄了,使用createBottomTabNavigator或者createMaterialTopTabNavigator,對應(yīng)的標簽欄位置。

懷中人 回答

你數(shù)據(jù)庫和程序是部署在一起的嗎?如果是,其實直接都是localhost都是可以,都是指向的是自己本機。但是用127.0.0.1更好

憶往昔 回答

問題已解決。是學(xué)校網(wǎng)絡(luò)管理員調(diào)整防火墻策略導(dǎo)致

北城荒 回答

問題出在你的ThinkPHP版本上,官方的5.0版本的擴展庫版本號都是1.*,2.0版本均為ThinkPHP5.1版本專用。
先更新你的ThinkPHP版本,再重新composer安裝topthink/think-testing。

風畔 回答

stylus引用全局變量可以修改build/utils.js文件

stylus: generateLoaders('stylus',{import:[path.resolve('./src/shared/shared.styl')]}),

js公共文件不知道你是要做些什么,如果要共享變量的話,建議使用vuex。如果只是需要在vue加載前執(zhí)行一些代碼,可以再main.js里引入

瞄小懶 回答
  1. 打印出 this,就在里面找?。?/li>
  2. 找不到?那肯定是沒綁定了;
  3. 想用 this調(diào)用,肯定要綁定到原型鏈上,
  4. 那就去 main.js 綁定,Vue.prototype.moment = moment
  5. 導(dǎo)入組件后this.moment調(diào)用
愛礙唉 回答

不是有min-width 和max-width嗎
或者用媒體查詢

妖妖 回答

是不是默認樣式?jīng)]有被重置導(dǎo)致的?

野橘 回答
#include <stdio.h>
#include <stdlib.h>

#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

#define OK 0
#define error -1
#define OVERFLOW -2

typedef int ElemType;

typedef struct _SqList
{
    ElemType *elem;
    int length;        //表長度
    int listsize;    //當前分配的存儲容量
}SqList,*pSqList;

//增加存儲空間容量
int addcapacity(SqList *sqlist)
{
    ElemType *newbase;    //分配一個新的基址
    newbase = (ElemType *)malloc((sqlist->listsize + LISTINCREMENT) * sizeof(ElemType));
    if (newbase == NULL)
        exit(OVERFLOW);
    sqlist->elem = newbase;
    sqlist->listsize += LISTINCREMENT;
    return OK;
}

//初始化順序表
int InitList_sq(SqList *sqlist)
{
    if (sqlist == NULL)
        return error;
    //給線性表分配初始容量
    sqlist->elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
    if (!sqlist->elem)
        exit(OVERFLOW);
    sqlist->length = 0;
    sqlist->listsize = LIST_INIT_SIZE;
    return OK;
}

//在表的第i個位置插入新元素newelem
int ListInsert(SqList *sqlist, int i, ElemType newelem)
{
    if (sqlist == NULL || i<1 || i>sqlist->length + 1)
    {
        return error;
    }
    if (sqlist->length > sqlist->listsize)    //檢查線性表是否已滿,如果滿了就擴充空間容量
    {
        if (addcapacity(sqlist) != OK)
            return OVERFLOW;
    }
    //將第i個元素以及第i個元素后面的元素后移
    for (int j = sqlist->length; j >= i; j--)
        sqlist->elem[j] = sqlist->elem[j - 1];
    sqlist->elem[i - 1] = newelem;
    //TODO
    // sqlist->elem++;
    sqlist->length ++;
    return OK;
}

//順性表輸出
void Print_list(SqList *sqlist)
{
    int i;
    for (i = 0; i < sqlist->length; i++)
        printf("%d  ", sqlist->elem[i]);
    printf("\n");
}

int main()
{
    SqList L;
    InitList_sq(&L);

    for (int i = 0; i < 10; i++)    //將0-9插入順序表
    {
        int result =  ListInsert(&L, i + 1, i);
        printf("%d",result);
    }
    Print_list(&L);
    return 0;
}

請看TODO部分

舊言 回答

interface只是提供聲明,描述你的對象大致長什么樣,不能實例化
class就是描述你對象的樣子

constructor(

public id: number,
public name: string) { }

會自動聲明類屬性id和name,并在構(gòu)造函數(shù)中自動賦值

失心人 回答

你這是正則寫錯了,'/src="(.+.(png|jpg))"+?/'其中只有第一個,也就是外面的捕獲組使用了非貪婪模式,里面的'.+'沒使用非貪婪模式,改成'.+?'應(yīng)該就可以了。(這個點不睡也是沒誰了。。)

舊城人 回答

1.請確認后臺是不是所有的參數(shù)都接收不到
2.如果其他參數(shù)都能接收不到,只有時間接收不到,那是時間的問題,這里的格式是字符串,看看是不是需要時間戳格式

失魂人 回答

其實可以每個軟件用一個容器運行的, 然后用 link 的方式鏈接起來使用, 都打包放一起我個人感覺不好, "不可插拔" 打包的方式就跟使用一大個虛擬系統(tǒng)沒有區(qū)別了, 而且也并不好維護

就比如我在學(xué)習(xí)的時候做的是 nginx 是一個容器, 然后可以啟用, mysql 又是一個容器, 啟動和停止都可以單獨操作, 這樣每個的配置文件也可以分別放在相應(yīng)宿主機的文件夾位置做映射, 配置都可以在不啟動 docker 的時候進行, 確實很多教程都是打包的方式,我也不知道為什么

默念 回答

應(yīng)該是./install-dependencies.sh
或者sh install-dependencies.sh

你不加./的話,shell會去$PATH中找這個命令,而當前目錄不在$PATH下。加上./則會是執(zhí)行當前目錄下的腳本

幼梔 回答

先把視頻停了再試試

離觴 回答

之前提問并沒有指出是什么所謂同源事件 故而現(xiàn)在更新一波


正文開始

其實也沒有什么難度,看了你的demo,無非是一些事件注冊,好消息是我剛才順手寫了個vue-highchart里使用的例子,先放效果給你看吧

clipboard.png

其實,最重要的是你忘記框架或者庫的存在,一切從js的層面去看它
以下是你評論里貼的例子的截圖

clipboard.png
可以看到就是獲取自身chart對象以及dom 然后得到其它chart對象以及dom 然后開始事件注冊
所以vue里面我們也這樣做不就好了?

我的代碼(關(guān)鍵步驟里面有注釋)

<template>
    <div>
        <highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart1)" ref="c1"></highcharts>
        <highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart2)" ref="c2"></highcharts>
        <highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart3)" ref="c3"></highcharts>
    </div>
</template>

<script>
import { offset } from "@/js/utils";

export default {
    name: "test",
    data() {
        return {
            chartData: {
                chart1: [["1月", 10], ["2月", 12], ["3月", 22]],
                chart2: [["1月", 44], ["2月", 30], ["3月", 22]],
                chart3: [["1月", 10], ["2月", 30], ["3月", 8]],
            },
        };
    },
    methods: {
        createOption(data) {
            return {
                series: [{ data }],
            };
        },
    },
    mounted() {
        const { c1, c2, c3 } = this.$refs;
        const chart1 = c1.chart;
        const chart2 = c2.chart;
        const chart3 = c3.chart;
        // 你看chart對象是不是得到了
        const allChart = [chart1, chart2, chart3];
        // 定義一個獲取其它兄弟表集合的方法
        allChart.getOther = function(one) {
            return allChart.filter(c => c !== one);
        };
        // 循環(huán)進行事件綁定
        allChart.forEach(chart => {
            // 你看自身chart的dom是不是得到了
            const container = chart.container;
            if (container instanceof Element) {
                container.addEventListener("mousemove", function(e) {
                    var sourceXAxis = chart.xAxis[0];
                    var extremes = sourceXAxis.getExtremes();
                    var targetChartContainerList = allChart.getOther(chart);
                    targetChartContainerList.forEach((ct, index) => {
                        var targetChart = ct;
                        var targetDom = ct.container;
                        var sourceOffset = offset(container);
                        var targetOffset = offset(targetDom);
                        var targetE = {};
                        for (var i in e) {
                            targetE[i] = e[i];
                        }
                        targetE.pageX =
                            e.pageX + targetOffset.left - sourceOffset.left;
                        targetE.pageY =
                            e.pageY + targetOffset.top - sourceOffset.top;
                        var targetEl =
                            targetDom.querySelector(
                                "rect.highcharts-background"
                            ) ||
                            targetDom.querySelector("path.highcharts-tracker");

                        targetE.target = targetE.srcElement = targetE.fromElement = targetE.toElement = targetEl;
                        targetE.delegateTarget = targetE.currentTarget = targetDom;
                        targetE.originalEvent = targetE;
                        if (targetChart && targetChart.pointer) {
                            targetChart.pointer.onContainerMouseMove(targetE);
                        }
                        if (targetChart && targetChart.scroller) {
                            targetChart.scroller.mouseMoveHandler(targetE);
                        }

                        if (
                            chart.mouseIsDown == "mouseup" ||
                            chart.mouseIsDown == "mousedown"
                        ) {
                            if (targetChart && targetChart.xAxis[0]) {
                                var targetXAxis = targetChart.xAxis[0];
                                targetXAxis.setExtremes(
                                    extremes.min,
                                    extremes.max
                                );
                            }
                        }
                    });
                    return false;
                });
            }
        });
    },
};
</script>

你看看事件注冊部分是不是和你的那個代碼很像,沒錯,我就是照著抄的。

offset是啥?

至于offset方法是啥?因為我完全不依賴于jquery,所以自己實現(xiàn)了一個offset方法,基本也是照著jquery源碼抄著改的
也可以給你看一下offset的代碼

// offset: borrow ideas from the implement of offset in jQuery.fn.extend
export const offset = elem => {
    /* jshint eqeqeq: false */
    const isWindow = obj => obj != null && obj == obj.window;
    const getWindow = ele =>
        isWindow(ele)
            ? ele
            : ele.nodeType === 9 ? ele.defaultView || ele.parentWindow : false;

    let docElem,
        win,
        box = { top: 0, left: 0 },
        doc = elem && elem.ownerDocument;

    if (!doc) {
        return;
    }
    docElem = doc.documentElement;
    // Make sure it's not a disconnected DOM node
    if (!docElem.contains(elem)) {
        return box;
    }
    // If we don't have gBCR, just use 0,0 rather than error
    // BlackBerry 5, iOS 3 (original iPhone)
    if (typeof elem.getBoundingClientRect === "function") {
        box = elem.getBoundingClientRect();
    }
    win = getWindow(doc);
    return {
        top:
            box.top +
            (win.pageYOffset || docElem.scrollTop) -
            (docElem.clientTop || 0),
        left:
            box.left +
            (win.pageXOffset || docElem.scrollLeft) -
            (docElem.clientLeft || 0),
    };
};

其它注意事項

哦對了,我只抄了mousemove部分,其它部分你自己對著慢慢抄.
實際使用的時候,addEventListener里的function最好不要匿名,這樣方面組件beforeDestory的時候可以removeEventListener取消監(jiān)聽