鍍金池/ 問(wèn)答
喜歡你 回答

沒(méi)人回答那我自己來(lái)吧

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
typedef unsigned char byte;

bool removeBytes(FILE *stream, int length) {
    if (length <= 0)
        return true;
    long pos1, pos2, oldLength, newLength, off;
    pos1 = pos2 = ftell(stream);
    fseek(stream, 0, 2);
    oldLength = ftell(stream);
    fseek(stream, pos1, 0);
    newLength = oldLength - length;
    off = newLength - pos1;
    while (off > 0) {
        int cSize = off>0x1000?0x1000:off;
        char *cache = new char[cSize];
        off -= cSize;
        if (fseek(stream, pos2 + length, 0)||
            fread(cache, 1, cSize, stream) != cSize||
            fseek(stream, pos2, 0)||
            fwrite(cache, 1, cSize, stream) != cSize)
            return false;
        pos2 += cSize;
        free(cache);
    }
    return !ftruncate(fileno(stream), newLength<pos1?pos1:newLength);
}

bool insertBytes(FILE *stream, byte *bytes, long length = 4) {
    if (length < 0)
        return true;
    long pos, oldLength, newLength, off;
    pos = ftell(stream);
    fseek(stream, 0, 2);
    oldLength = ftell(stream);
    fseek(stream, pos, 0);
    newLength = oldLength + length;
    off = oldLength - pos;
    if (ftruncate(fileno(stream), newLength))
        return false;
    while (off > 0) {
        int cSize = off>0x1000?0x1000:off;
        char *cache = new char[cSize];
        off -= cSize;
        if (fseek(stream, pos + off, 0)||
            fread(cache, 1, cSize, stream) != cSize||
            fseek(stream, pos + length + off, 0)||
            fwrite(cache, 1, cSize, stream) != cSize)
            return false;
        free(cache);
    }
    fseek(stream, pos, 0);
    if (fwrite(bytes, 1, length, stream) == length)
        return true;
    return false;
}
病癮 回答

你兩個(gè)option的value綁定了同一個(gè)值了啊,大哥

請(qǐng)問(wèn)解決了嗎?我也遇到這個(gè)問(wèn)題了

未命名 回答

改成用scenePos

def mousePressEvent(self, event):
    QGraphicsScene.mousePressEvent(self, event)
    e = event.scenePos()
    print(e)
糖豆豆 回答

.babelrc嗎? webpack.*.conf.js 文件里 'babel-loader' 怎么配置的?

網(wǎng)妓 回答

電商系統(tǒng)經(jīng)常遇到的屬性變動(dòng)問(wèn)題

數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候由于未來(lái)需求經(jīng)常改變。
所以設(shè)計(jì)的時(shí)候需要把原本是列的變成行數(shù)據(jù),到時(shí)候要改列的時(shí)候通過(guò)插入行數(shù)據(jù)來(lái)實(shí)現(xiàn)。
舉個(gè)例子。

我有個(gè)手機(jī)。
名稱價(jià)格,翻蓋還是滑蓋,智能機(jī)還是非智能機(jī)等屬性。

如果按照列的設(shè)計(jì)。

那么,每個(gè)手機(jī)的值如下

ID 名稱,價(jià)格,翻蓋/滑蓋/直板,是否智能機(jī)
1,諾基亞,1000,翻蓋,否
2. 蘋果,4000,直板,是
3. 安卓,2000,直板,是

如果要增加操作系統(tǒng)字段,需要更改表結(jié)構(gòu)添加字段。

采用行設(shè)計(jì)

屬性表

ID,屬性名
1. 操作系統(tǒng)
2. 直板/滑蓋/翻蓋
。。。

商品表

ID,名稱,價(jià)格
1 諾基亞,1000
2 蘋果 4000
3 安卓 2000

商品屬性
商品ID ,屬性ID,屬性值
1 1 塞班
1 2 直板
2 1 ios
2 2 直板

這樣,如果要加屬性。添加屬性表的數(shù)據(jù)和商品屬性表數(shù)據(jù)即可,不需要改結(jié)構(gòu)

不同客戶之間功能不同問(wèn)題

首先,程序只有一套,數(shù)據(jù)庫(kù)只有一個(gè)。

  1. 所以,客戶需要實(shí)現(xiàn)的功能,我們程序必須實(shí)現(xiàn),每個(gè)功能加到一個(gè)功能表,參照屬性表設(shè)置
  2. 然后需要開通該功能的客戶,添加一個(gè)表,參考商品屬性表,

功能

ID,功能名稱
1 廣告功能
2 可以自定義微信公眾號(hào)
...

客戶功能
客戶ID,功能名稱
1 1
1 2

做好緩存,那么我讀取到客戶1的時(shí)候會(huì)發(fā)現(xiàn)客戶1有廣告功能和微信功能,那么程序根據(jù)這個(gè)該顯示頁(yè)面的添加頁(yè)面顯示,后臺(tái)可以操作的,后臺(tái)也顯示出來(lái)

半心人 回答

主要是 Vue 也不支持IE8啊。 所以要么一起用,要么就都別用。

使用JSON.parse需嚴(yán)格遵守JSON規(guī)范。
解決方法:
將tempFilePath 進(jìn)行 encodeURI() 函數(shù)轉(zhuǎn)換,就可以了。

祉小皓 回答

可以使用org.apache.poi庫(kù),具體的細(xì)節(jié)還是自己查文檔,畢竟我也沒(méi)實(shí)操過(guò)

魚梓 回答

給個(gè)無(wú) JS 的答案:

<input type="number" min="0.01" max="10000" step="0.01" required>
<div class="error-msg">請(qǐng)輸入正確的值</div>
.error-msg
  display: none

  input:invalid + &
    display: block
情殺 回答
  1. 獲取當(dāng)前選擇的構(gòu)件或者當(dāng)前選擇的構(gòu)建集
// 直接獲取
viewer.getSelection();

//或者監(jiān)聽(tīng)選擇集變更事件
var onSelectionChanged = function( event ) {
    console.log( event.dbIdArray );
};

viewer.addEventListener(
    Autodesk.Viewing.SELECTION_CHANGED_EVENT,
    onSelectionChanged
);

2、獲取選擇構(gòu)件的屬性

//直接獲取屬性
var onPropsFeteched = function( result ) {
    console.log( result.properties );
}

var onFetchingPropsFailed = function( error, message ) {
    console.error( error, message );
}

viewer.getProperties(
    dbId,
    onPropsFeteched,
    onFetchingPropsFailed
);

// 從給予的 dbId 里獲取所有擁有特定屬性的構(gòu)件
// https://forge.autodesk.com/blog/getbulkproperties-method
viewer.model.getBulkProperties( dbIds, ['屬性名稱'],
   function( elements ) {
     for(var i=0; i<elements.length; i++){
        console.log( elements[i].properties[0] );
     }
   });

// 通過(guò)查找功能
// https://segmentfault.com/a/1190000010977818
viewer.search( 
    "屬性值",
    function( dbIds ) {
        console.log( dbIds );
    },
    ["屬性名稱"]
);

3、添加構(gòu)件屬性
你的標(biāo)題似乎跟內(nèi)文不符,我先回答標(biāo)題的問(wèn)題,F(xiàn)orge 轉(zhuǎn)換的模型跟屬性是不可修改的,所以無(wú)法添加;或者通過(guò)自訂屬性窗顯示自己的屬性 https://segmentfault.com/a/11...

至于內(nèi)文的添加圖標(biāo)部份,可以參考這些樣例:

P.S. 建議可以到查找樣例 https://github.com/Autodesk-F...

賤人曾 回答

23333,你這個(gè)是最經(jīng)典的函數(shù)防抖應(yīng)用場(chǎng)景。

使函數(shù)在一定的時(shí)間內(nèi)不被再調(diào)用后執(zhí)行。

也就是說(shuō),當(dāng)你觸發(fā)scroll或者change時(shí),不要直接去修改數(shù)據(jù),而是添加一個(gè)定時(shí)器來(lái)執(zhí)行修改數(shù)據(jù)的操作,在下次觸發(fā)函數(shù)時(shí),清除這個(gè)定時(shí)器,然后重新設(shè)置定時(shí)器。

或者說(shuō)用函數(shù)節(jié)流的方式也可以實(shí)現(xiàn)你的效果。

// 函數(shù)節(jié)流的實(shí)現(xiàn)方案
let throttleIdentify = 0
$dragable.addEventListener('mousemove', () => {
  if (throttleIdentify) return
  throttleIdentify = setTimeout(() => throttleIdentify = 0, 500)
  console.log('trigger')
})

// 函數(shù)防抖方案
let debounceIdentify = 0
window.addEventListener('resize', () => {
  debounceIdentify && clearTimeout(debounceIdentify)
  debounceIdentify = setTimeout(() => {
    console.log('trigger')
  }, 300)
})

看選擇咯,目的都是限制函數(shù)執(zhí)行的頻率。
這里有一篇之前的博客可以參考:函數(shù)節(jié)流與函數(shù)防抖

青黛色 回答

樓主,你好,你今天也發(fā)現(xiàn)這個(gè)問(wèn)題了,請(qǐng)問(wèn)你是怎么解決的???求回復(fù),謝謝哈;

陌上花 回答

給組建B設(shè)置ref

<leave ref="componentB"></leave>

然后在click方法里調(diào)用

// 通過(guò)$refsk可以獲取組建B的方法、屬性
this.$refs.componentB.leaveDialog**
雨蝶 回答

確實(shí)是兩個(gè)。因?yàn)閟pring容器沒(méi)辦法保證先加載FunctionService

尛曖昧 回答

其實(shí)那個(gè)碼就是一串信息(字符串),能拿到那串信息后,你想怎么轉(zhuǎn)就怎么轉(zhuǎn)。
主要是怎么獲取那串字符。

淺淺 回答

善用google,已經(jīng)有人解決這個(gè)issue了,刪掉密鑰之后重啟服務(wù),搞定 https://issues.jenkins-ci.org...

蟲児飛 回答

java.lang.NullPointerException
應(yīng)該是空指針異常引發(fā)的socke錯(cuò)誤,檢查賦值操作為NULL的情況

孤島 回答

for (let i in dataOption) {

data1.push({ content: (i+1)+"."+dataOption[i].content, voteCount: dataOption[i].voteCount })

}