你這個(gè)用是的history模式吧?這個(gè)要后端處理下這些路徑
打印你的response,你會(huì)發(fā)現(xiàn)中間
<div class="num-wrap"><span>--</span></div><div class="nav-name">動(dòng)畫</div>
是--還未加載,在js里加載的數(shù)據(jù)
官方文檔上并沒有說可以配置這個(gè)啊。你修改肯定不對(duì)的。
因?yàn)閘aydate每個(gè)月各個(gè)日期的定位是基于第一天的,所以只要第一天定好位就好,這個(gè)根據(jù)每周排序可以自行定制,因?yàn)槟J(rèn)是周日開始(index=0),所以要根據(jù)周日在第幾的位置進(jìn)行調(diào)整,比如調(diào)整為周日是每周最后一天(index=6),則設(shè)置如下:
//計(jì)算當(dāng)前月第一天的星期
thisDate.setFullYear(dateTime.year, dateTime.month, 1);
startWeek = (thisDate.getDay()+6)%7;
當(dāng)然,你其實(shí)可以拍出奇怪的日歷樣式,比如周日在中間(index=3)
//計(jì)算當(dāng)前月第一天的星期
thisDate.setFullYear(dateTime.year, dateTime.month, 1);
startWeek = (thisDate.getDay()+3)%7;
既然你的Form表單是動(dòng)態(tài)變化的,所以你就不能使用TemplateDriven Form這種方式了。
所以你應(yīng)該使用ReactiveForm。
大致的思想就是你需要有一個(gè)container component, 將需要綁定formControl的input抽出來變成childwidget, childwidget兩個(gè)輸入?yún)?shù)user和fmgrp。
<div nz-row *ngFor="let user of authorityList; let i = index">
<div nz-col [nzSpan]="4">
</div>
<div nz-col [nzSpan]="6" [nzValidateStatus]="'success'" nzHasFeedback>
<childwidget [user]="user" [fmgrp]="defaultForm"></childwidget>
</div>
</div>
ngOnInit() {
this.defaultForm = new FormGroup({});
}
所以childwidget就變成這樣了
@Component({
selector: 'childwidget',
template: `
<nz-input [formControl]="formCtrl">
</nz-input>
`
});
@Input() user: string;
@Input() fmgrp: FormGroup;
formCtrol: FormControl = new FormControl("");
ngOnInit() {
if (this.fmgrp) {
this.fmgrp.addControl(this.user, this.formControl);
}
}
這樣無論你有多少個(gè)input,formGroup都能添加對(duì)應(yīng)額formControl。
然后你操作這個(gè)defaultForm這個(gè)變量就可以了。
用一個(gè)變量標(biāo)識(shí)有沒有在畫板上畫過畫。
偽代碼
var isDraw = false;
function draw(){
isDraw = true;
//code
}
function save(){
if(isDraw){
//code
}else{
alert('請(qǐng)先在畫板上簽字');
}
}這就需要監(jiān)聽angular的啟動(dòng)過程了,angular的一般啟動(dòng)代碼為platformBrowserDynamic().bootstrapModule(AppModule),返回的是一個(gè)Promise,所以直接then它就好了。
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
注意最后一個(gè) viewport-fit=cover,以及css中的constant(safe-area-inset-top)、env(safe-area-inset-top)
試了下好像沒有報(bào)這個(gè)錯(cuò)誤,你這個(gè)看起來ykit的插件yo沒有安裝上,試試換下npm源,不行的話可以考慮去GitHub上提issue哈。
direction: rtl;
嘗試下
攔截器就是對(duì)發(fā)出的所有請(qǐng)求和響應(yīng)信息重新處理的地方。。在這里你可以統(tǒng)一的加上請(qǐng)求頭、判斷響應(yīng)狀態(tài)碼做一些通用的處理,而不必對(duì)每個(gè)請(qǐng)求單獨(dú)設(shè)置
最終我還是采用了另一種方案。在根目錄的static目錄下新建一個(gè)css目錄,此目錄下保存2份css文件。分別為:picture.css(此樣式表只保存所有需要轉(zhuǎn)換為webp圖片的原始路徑)和webp.css(此樣式表只保存所有需要轉(zhuǎn)換為webp圖片的webp路徑)。然后在index.html的<script>標(biāo)簽里判斷瀏覽器是否支持webp格式,如果支持就載入webp.css,并且在localStorage里埋下webpSupport:true的屬性。否則就載入picture.css。下次進(jìn)入app,只需要判斷l(xiāng)ocalStorage下的webpSupport屬性,即可加載對(duì)應(yīng)的樣式表。此方法的缺點(diǎn),就是需要額外保存2個(gè)樣式表文件,來分別保存原格式和webp格式的路徑。但是優(yōu)點(diǎn)是避免了用less的方法,多出了額外的圖片請(qǐng)求。以下是index.html中的業(yè)務(wù)邏輯代碼。
(function() {
let styleTag = document.getElementById('pictureStyle')
// 判斷是否有webpSupporta: true這個(gè)storage
if (!localStorage.getItem('webpSupport')) {
let image = new Image()
// 圖片加載完成時(shí)候的操作
image.onload = function() {
// 圖片加載成功且寬度為1,那么就代表支持webp了,因?yàn)檫@張base64圖是webp格式.如果不支持會(huì)觸發(fā)image.error方法
if (image.width == 1) {
localStorage.setItem('webpSupport', true)
styleTag.setAttribute('href', '/static/css/webp.css')
} else {
styleTag.setAttribute('href', '/static/css/picture.css')
}
}
// 一張支持alpha透明度的webp的圖片,使用base64編碼
image.src = 'data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA=='
} else {
styleTag.setAttribute('href', '/static/css/webp.css')
}
}())你這個(gè)this有問題吧,在proxy函數(shù)頂層定義一個(gè)var that = this;在內(nèi)嵌函數(shù)里面用that試試。
http請(qǐng)求是一個(gè)異步操作,在success回調(diào)之前,不會(huì)執(zhí)行回調(diào)中的代碼。
然而你的取值是在發(fā)起請(qǐng)求之后就立即取值的。
有啊,第二個(gè)參數(shù)就是傳遞一個(gè)大的對(duì)象,其中有{params:xxx}
這是我ng4的一段get封裝,5也應(yīng)該差不多吧。
public get(url: string, body: any, cb, options) {
const ops = Object.assign({}, {params: body}, options);
this.http.get(url, ops).subscribe(data => {
this.format(data, cb, options.notload);
});
}大部分二維碼,要么里面是個(gè) 鏈接的字符串,要么就是鏈接的一些參數(shù),你在拿到這個(gè)串之后,肯定要做一些 動(dòng)作,比如轉(zhuǎn)義,跳轉(zhuǎn)之類的操作。你要做什么,要你自己來實(shí)現(xiàn)。想清楚你要什么,然后怎么實(shí)現(xiàn),一步一步列清楚,這才是寫程序需要的思維。
導(dǎo)航用bs自帶的,別放在柵格系統(tǒng)里 柵格是百分比寬度 比如你的col-lg-1默認(rèn)是容器的1/12寬度 但是你的字寬度是不變的 所以被擠下來了 你把右邊的登錄注冊(cè) 正常右浮動(dòng)就行 別放在百分比容器里
第一種:
父級(jí):overflow: hidden;
左邊的:float: left;
右邊的:overflow: hidden;
第二種:
左邊給一個(gè)固定的寬度,右邊的給一個(gè)margin-left: 左邊的寬度。
dataSource中的key和columes中的dataIndex對(duì)應(yīng)上就可以了。
拿你的數(shù)據(jù)說:
dataSource = [
{
"name": "tank",
"total": "100"
},
{
"name": "zhang",
"total": "23"
},
{
"name": "hao",
"total": "325"
}
]
columus = [
{
dataIndex: 'name',
title: 'XXXXX'
},
{
dataIndex: 'total',
title: 'xxxxxx'
}
]后端都會(huì)維護(hù)一個(gè)節(jié)假日的json表的。
所以你要是想做這個(gè),也得自己維護(hù)個(gè)json表,而且是按年區(qū)分的。
工程問題沒有優(yōu)不優(yōu)雅
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dò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ù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。