(1)你在切換導(dǎo)航的時(shí)候給個(gè)類型區(qū)別,你可以在url添加一個(gè)錨點(diǎn),例如http://localhost:8086/topic/index?nav=XXX.(XXX就是點(diǎn)擊nav名字)
(2)
<ul>
<li data-type=“wangye”>網(wǎng)頁</li>
<li data-type=“xinwen”>新聞</li>
<li data-type=“tieba”>貼吧</li>
</ul>
(3)用jquery或者js或者angularjs里自帶的路由獲取url里的XXX,讓li里的data-type值與XXX相等的添加高亮狀態(tài)。當(dāng)然你也可以不用data-type,用id也可以。例如:
<ul>
<li id=“wangye”>網(wǎng)頁</li>
<li id=“xinwen”>新聞</li>
<li id=“tieba”>貼吧</li>
</ul>
$(XXX).addClass(高亮class);把XXX當(dāng)id即可;
(4)好處:頁面刷新,選中的高亮狀態(tài)也不會消失,到達(dá)預(yù)期效果。 壞處:代碼不夠優(yōu)美,有待優(yōu)化與改善
假設(shè) models.py 你是這樣設(shè)計(jì)的:
# -*- coding:utf-8 -*-
___blog__ = 'www.os373.cn'
class App(db.Model):
__tablename__ = 'apps'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True, index=True)
keyword = .....
...
...
# 定義“一對多”關(guān)系中的一
downloads = db.relationship('Download', backref='download', lazy='dynamic')
class Download(db.Model):
__tablename__ = 'downloads'
id = db.Column(db.Integer, primary_key=True)
keyword = .....
...
...
# 定義“一對多”關(guān)系中的多
aid = db.Column(db.Integer, db.ForeignKey('apps.id'))
以上設(shè)計(jì),就是設(shè)置了一個(gè)一對多關(guān)系的數(shù)據(jù)庫表結(jié)構(gòu)。
現(xiàn)在我們設(shè)計(jì) views.py 視圖
# -*- coding:utf-8 -*-
___blog__ = 'www.os373.cn'
.........
page_index = request.args.get('page', 1, type=int)
downloads = db.session.query(App.id, App.name, Download.keyword, Download.ranks, Download.download, Download.yesterday_download, Download.today_download).join(Download, App.id==Download.aid).order_by(Download.id.desc()). paginate(page_index, per_page=20, error_out=False)
如果想精進(jìn)自己的 sqlalchmy 的能力,希望你能多看看我的這個(gè) sql to sqlalchemy 項(xiàng)目
發(fā)送事件的時(shí)候新的組件還沒綁定事件怎么監(jiān)聽得到呢?
https://codesandbox.io/s/p7vk...
最后解決方案 new ExtractTextPlugin("[name].[contenthash:8].css")
打包的時(shí)候不給css指定文件夾就OK了。。
但是原因還不是不清楚,哪位路過大神可以給指點(diǎn)一下 不勝感激
指向同一個(gè)component的默認(rèn)會使用原先的組件
用這兩個(gè)去監(jiān)聽更新數(shù)據(jù)吧
好像還有一種路由設(shè)置key的方案
逗號運(yùn)算符。
先計(jì)算左邊的操作數(shù),然后計(jì)算右邊的操作數(shù),最后返回右操作數(shù)的值。
是粗心了,在上一行代碼中漏打一個(gè))
error 是顯示 xxx 不存在于 access-control-allow-headers
把提示你的xxx放進(jìn)去,response.addHeader("Access-Control-Allow-Headers","xxx");
<script src="/js/plupload.full.min.js"></script>
<script src="https://cdn.staticfile.org/qi...;></script>
componentDidMount(){
this.initQiniu();
}
initQiniu(){
var _this = this;
var uploader = Qiniu.uploader({
runtimes: 'html5,flash,html4', // 上傳模式,依次退化
browse_button: 'pickfiles', // 上傳選擇的點(diǎn)選按鈕,**必需**
uptoken_url: 'url to fetch token', // Ajax 請求 uptoken 的 Url,**強(qiáng)烈建議設(shè)置**(服務(wù)端提供)
get_new_uptoken: false, // 設(shè)置上傳文件的時(shí)候是否每次都重新獲取新的 uptoken
unique_names: true, // 默認(rèn) false,key 為文件名。若開啟該選項(xiàng),JS-SDK 會為每個(gè)文件自動生成key(文件名)
domain: 'xxx', // bucket 域名,下載資源時(shí)用到,**必需**
container: 'container', // 上傳區(qū)域 DOM ID,默認(rèn)是 browser_button 的父元素,
max_file_size: '100mb', // 最大文件體積限制
flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相對路徑
max_retries: 3, // 上傳失敗最大重試次數(shù)
dragdrop: true, // 開啟可拖曳上傳
drop_element: 'container', // 拖曳上傳區(qū)域元素的 ID,拖曳文件或文件夾后可觸發(fā)上傳
chunk_size: '4mb', // 分塊上傳時(shí),每塊的體積
auto_start: true, // 選擇文件后自動上傳,若關(guān)閉需要自己綁定事件觸發(fā)上傳,
init: {
'FilesAdded': (up, files) => {
plupload.each(files, function(file) {
// 文件添加進(jìn)隊(duì)列后,處理相關(guān)的事情
});
},
'BeforeUpload': (up, file) => {
// 每個(gè)文件上傳前,處理相關(guān)的事情
},
'UploadProgress': (up, file) => {
// 每個(gè)文件上傳時(shí),處理相關(guān)的事情
this.setState({
isUploading: true,
});
},
'FileUploaded': (up, file, info) => {
const domain = window.domain;
const res = JSON.parse(info);
const sourceLink = domain + res.key; //獲取上傳成功后的文件的Url
this.setState({
fileUrl: sourceLink,
isUploading: false
});
},
'Error': (up, err, errTip) => {
//上傳出錯(cuò)時(shí),處理相關(guān)的事情
},
'UploadComplete': () => {
//隊(duì)列文件處理完畢后,處理相關(guān)的事情
},
}
});
}
render(){
return(
<div id="container">
<div id="pickfiles">上傳</div>
</div>
)
}
瀏覽器點(diǎn)擊下拉展開的時(shí)候才獲取值,5秒的應(yīng)該是 沒到5秒你點(diǎn)擊展開了
manifest version 2 里面不允許在 POPUP 頁面寫 JavaScript 腳本,腳本必須引用外部JS文件
昨天查看原因,是后臺的數(shù)據(jù)中,名稱不一樣,倒是id是一樣導(dǎo)致的!
沒有。
你可以寫一個(gè)函數(shù)代替呀。vue中管道也相當(dāng)于函數(shù)。
const date_format = date => {/* your code */}
<div>{date_format(item.applyDate)}</div>
easy-mock
api協(xié)作管理工具
我現(xiàn)在工作用的是這兩個(gè)工具,很好用
好問題。這個(gè)package.json
實(shí)際是編譯之后的結(jié)果,你真正看這個(gè)控件的源碼的時(shí)候,它的源碼的package.json
里是沒有這個(gè)metadata
的,但是注意看源碼中package.json
的最后幾行:
"$schema": "./node_modules/ng-packagr/package.schema.json",
"ngPackage": {
"lib": {
"entryFile": "src/daterangepicker/index.ts",
"externals": {
"moment": "moment"
},
"umdModuleIds": {
"moment": "moment"
}
},
"dest": "dist"
}
在這里,它暴露了它是用ng-packagr這個(gè)包來進(jìn)行編譯的,再查看上面的scripts
部分:
"build": "ng-packagr -p package.json"
果然,它用了ng-packagr
編譯。所以npm里的package.json
文件是由ng-packagr
生成的,而不是作者手寫的。
那么ng-packagr
為什么會生成這么一個(gè)metadata
呢?這就要談到Angular
本身的編譯機(jī)制。
Angular
的編譯分為JIT
和AOT
兩種,聽上去特別高大上吧?其實(shí)就是即時(shí)編譯和預(yù)編譯的區(qū)別。正常情況下,你ng build
得到的是即時(shí)編譯也就是JIT
的結(jié)果,但如果你加個(gè)參數(shù)ng build --aot
,你就得到了AOT
也就是預(yù)編譯的結(jié)果,這時(shí)候Angula
r就幫你產(chǎn)生了這個(gè)metadata
以及所有附加需要的文件。很顯然,ng-packagr
采用了AOT
的方式進(jìn)行編譯,所以有了這個(gè)metadata
。
至于這個(gè)AOT
產(chǎn)生的這個(gè)metadata
有什么用,它的作用就是可以讓用戶在二次編譯的時(shí)候節(jié)省時(shí)間。具體細(xì)節(jié)可以通過看咱們SegmentFault上的這篇文章來進(jìn)一步了解。
不懂怎么個(gè)微服務(wù)
法?是一個(gè)服務(wù)部署多個(gè)?還是部署多個(gè)服務(wù)?還是啥?
應(yīng)該是有跨域的圖片
你提供的json字符串不是一個(gè)有效的json字符串。
用下面的看看:
var json = '[{ "title": "演出時(shí)長", "desc": "2" }, { "title": "入場時(shí)間", "desc": "這是入場時(shí)間" }, { "title": "限購說明", "desc": "每單限購6張" }, { "title": "座位類型", "desc": "請按門票對應(yīng)座位,有序?qū)μ柸胱? }, { "title": "兒童入場提示 ", "desc": "1.2米以上憑票入場,1.2米以下謝絕入場" }, { "title": "禁止攜帶物品", "desc": "食品、飲料、相機(jī)、充電寶、打火機(jī)等" }, { "title": "演出語言", "desc": "中文" }, { "title": "演出形式", "desc": "這是演出形式" }, { "title": "其他說明", "desc": "這是一段購買須知" }, { "title": "實(shí)體票", "desc": "本項(xiàng)目支持憑實(shí)體票入場,支持以下取票方式: -快遞配送: 運(yùn)費(fèi)10元(V2及以上會員包郵), 順豐發(fā)貨。 -上門自提: 前往門店自取, 門店店))。 -現(xiàn)場取票: 工作人員將在。" }, { "title ": "電子票 ", "desc ": "本項(xiàng)目支持憑電子票入場。 -現(xiàn)場掃碼驗(yàn)票或憑姓名手機(jī)號入場( 以現(xiàn)場為準(zhǔn)); 掃碼驗(yàn)票流程: 打開APP→ 訂單詳情→ 票券詳情→ 現(xiàn)場掃碼入場。 " }]';
var obj = JSON.parse(json);
console.log(obj[0].title);
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。