<span ng-if='!(checkTypeData && checkTypeData[0].checkEName)'>{{item.checkName}}</span>
<span ng-if='(checkTypeData && checkTypeData[0].checkEName'>{{item.checkEName}}</span>實現(xiàn)一個Md5哈希函數(shù),就能達到你說的效果。
...肯定不行啊,
getExpandData = (param) => {
**getModelVersion(param)**.then((result) => {//異步的
if (result) {
this.setState({
subData: result, // 過濾之后的數(shù)據(jù)
});
}
});
};
const subList = this.state.**subData**.map((v) => {//其實還是上一次的數(shù)據(jù),因為還沒異步完
return {
...v,
todo: v.status,
};
});
解決辦法1,改造,回調(diào)進去
getExpandData = (param,cb) => {
getModelVersion(param).then((result) => {
if (result) {
this.setState({
subData: result, // 過濾之后的數(shù)據(jù)
},cb);
}
});
};
expandFunction = (expanded, record) => {
const { showListDom } = this.state;
if (record) { // 未展開
const param = {
modelId: record.id,
};
this.getExpandData(param,()=>{
const subList = this.state.subData.map((v) => {
return {
...v,
todo: v.status,
};
});
const dom = (
<Table
columns={this.detailsColumns}
onChange={this.handleSubTableChange}
dataSource={subList}
rowKey={subList.id}
pagination={false}
/>);
const Id = record.id;
const item = {};
item[Id] = dom;
this.setState({
showListDom: {
...showListDom,
...item,
},
});
});
}
};
解決辦法2,用async await改造,我就不寫了
nginx怎么配置的,需要看一下。懷疑是配置問題
在以往windows ie為主的時代,可以通過檢查控件等方式判斷,但現(xiàn)在H5,都不建議用控件了,所以需要別的方法了。
一般是用特殊協(xié)議檢測法,不過囿于瀏覽器安全控制方面的原因,效果不會完美。
不可以的,.vue文件需要被 webpack等js打包器處理過以后,轉(zhuǎn)換為js才能被瀏覽器正確識別
https://caniuse.com/usage-table
如果可以的話可以換種思路,用上面的數(shù)據(jù)說服經(jīng)理不用兼容ie8
不需要使用:filtered-value
<el-table-column v-for="game in gameList" :label="game.gameNameCn" :filtered-value="[game]">
<template v-if="scope.row.gameList.some(item=>item.gameId ===scope.column.filteredValue[0].gameId)">
可以直接改為
<el-table-column v-for="game in gameList" :label="game.gameNameCn">
<template v-if="scope.row.gameList.some(item=>item.gameId === game.gameId)">
使用:filtered-value屬性解決了我的問題
<el-table-column v-for="game in gameList" :label="game.gameNameCn" :filtered-value="[game]">
<template v-if="scope.row.gameList.some(item=>item.gameId === scope.column.filteredValue[0].gameId)">login()里面的.then(res =>res.data)去掉
403 Forbidden 錯誤,大多是被服務(wù)器屏蔽了,拒絕提供返回內(nèi)容
一般可以通過更換服務(wù)器ip、設(shè)置代理服務(wù)器,去爬取
最好的辦法,是通過模擬瀏覽器人工采集爬取
selenium + xvfb + firefox + proxy ip
下面是我的解決方案,僅供參考,相互學(xué)習(xí)
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.proxy import *
from pyvirtualdisplay import Display
# from xvfbwrapper import Xvfb
import bs4, os
from base64 import b64encode
import sys
reload(sys)
sys.setdefaultencoding('utf8')
## webdriver + firefox (不使用代理,爬取網(wǎng)頁)
def spider_url_firefox(url):
browser = None
display = None
try:
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox() # 打開 FireFox 瀏覽器
browser.get(url)
content = browser.page_source
print("content: " + str(content))
finally:
if browser: browser.quit()
if display: display.stop()
## webdriver + firefox + proxy + whiteip (無密碼,或白名單ip授權(quán))
## 米撲代理:https://proxy.mimvp.com
def spider_url_firefox_by_whiteip(url):
browser = None
display = None
## 白名單ip,請見米撲代理會員中心: https://proxy.mimvp.com/usercenter/userinfo.php?p=whiteip
mimvp_proxy = {
'ip' : '140.143.62.84', # ip
'port_https' : 19480, # http, https
'port_socks' : 19481, # socks5
'username' : 'mimvp-user',
'password' : 'mimvp-pass'
}
try:
display = Display(visible=0, size=(800, 600))
display.start()
profile = webdriver.FirefoxProfile()
# add proxy
profile.set_preference('network.proxy.type', 1) # ProxyType.MANUAL = 1
if url.startswith("http://"):
profile.set_preference('network.proxy.http', mimvp_proxy['ip'])
profile.set_preference('network.proxy.http_port', mimvp_proxy['port_https']) # 訪問http網(wǎng)站
elif url.startswith("https://"):
profile.set_preference('network.proxy.ssl', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ssl_port', mimvp_proxy['port_https']) # 訪問https網(wǎng)站
else:
profile.set_preference('network.proxy.socks', mimvp_proxy['ip'])
profile.set_preference('network.proxy.socks_port', mimvp_proxy['port_socks'])
profile.set_preference('network.proxy.ftp', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ftp_port', mimvp_proxy['port_https'])
profile.set_preference('network.proxy.no_proxies_on', 'localhost,127.0.0.1')
## 不存在此用法,不能這么設(shè)置用戶名密碼 (舍棄)
# profile.set_preference("network.proxy.username", 'mimvp-user')
# profile.set_preference("network.proxy.password", 'mimvp-pass')
profile.update_preferences()
browser = webdriver.Firefox(profile) # 打開 FireFox 瀏覽器
browser.get(url)
content = browser.page_source
print("content: " + str(content))
finally:
if browser: browser.quit()
if display: display.stop()
這些是代碼規(guī)范的警告,可以看他們給的這些鏈接,一般這些鏈接里都會告訴你是因為什么才會出現(xiàn)這種警告。
不考慮繼承屬性的方式
const result = [];
for (let key in arr) {
if (['a', 'b'].includes(key)) {
result.push(arr[key]);
}
}
includes: https://developer.mozilla.org...
hasOwnProperty: https://developer.mozilla.org...
背景知識1. 涉及到let和var的作用域范圍
背景知識2. setTimeout為異步執(zhí)行,當(dāng)同步代碼全部完成后,才會去執(zhí)行它,本例中for循環(huán)跑完后才會依次執(zhí)行各個setTimeout里的function。
過程推演:
1是公有屬性
2是靜態(tài)屬性
3是原型共享屬性
不清楚的話請看《javascript設(shè)計模式》
給個鏈接自己試著配置一下(Sublime Text3 配置 NodeJs 環(huán)境): http://www.cnblogs.com/qiaoji...
寫一個bat腳本如下: 自行修改判斷語句
set "cmd=%1%"
REM 檢測變量%cmd%是否等于run,如果相等,顯示Run,否則顯示No
if "%cmd%"=="run" (echo Run) else (echo No)
pause
再來完善一下:
set "cmd=%1%"
set projectDir=Y:\VueEgtch
cd /d "%projectDir%"
REM 檢測變量%cmd%是否等于run,如果相等,顯示Run,否則顯示No
if "%cmd%"=="run" (npm run dev) else if "%cmd%"=="build" (npm run build)
pause
運行如下:
C:\Users\Administrator\Desktop>test.bat run
C:\Users\Administrator\Desktop>set "cmd=run"
C:\Users\Administrator\Desktop>if "run" == "run" (echo Run ) else (echo No )
Run
C:\Users\Administrator\Desktop>pause
請按任意鍵繼續(xù). . .
C:\Users\Administrator\Desktop>test.bat dd
C:\Users\Administrator\Desktop>set "cmd=dd"
C:\Users\Administrator\Desktop>if "dd" == "run" (echo Run ) else (echo No )
No
C:\Users\Administrator\Desktop>pause
請按任意鍵繼續(xù). . .BFC的特點之一就是計算高度的時候會計算內(nèi)部的float元素
看了項目中,是用的webpack,里邊也配置了source-map,應(yīng)該在build后會產(chǎn)生source-map文件的,直接在chrome調(diào)試即可。
我相信官方文檔上面是沒有那個括號的
websocket協(xié)議是支持ping/pong消息的,理論上可以周期地發(fā)ping消息就可以了。
然而瀏覽器沒開放ping接口,所以你只能在websocket之上定時發(fā)點文本或二進制消息來檢測了。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。