打開(kāi)debug,看看http情況下加載的樣式是不是還是https的
參照樓上的修改了一下,嘻嘻
var deep = 0;
function getMaxDepthByKey(str, data) {
for (var i = 0; i < data.length; ++i) {
if (str === data[i].key) {
deep = getDeep(data[i]);
break;
} else {
if (data[i].hasOwnProperty('children')) {
getMaxDepthByKey(str, data[i].children);
}
}
}
return deep;
}
var maxLen = [];
function getDeep(data) {
if (data.hasOwnProperty('children')) {
maxLen[data.key] = 0;
for (let item of data.children)
maxLen[data.key] = Math.max(maxLen[data.key], getDeep(item) + 1);
return maxLen[data.key];
} else {
return 0;
}
}
console.log(getMaxDepthByKey('tree1', treeData));//3
console.log(getMaxDepthByKey('tree2', treeData));//2
console.log(getMaxDepthByKey('tree3', treeData));//1
console.log(getMaxDepthByKey('tree4', treeData));//0
console.log(getMaxDepthByKey('tree5', treeData));//0
console.log(getMaxDepthByKey('tree6', treeData));//0
console.log(getMaxDepthByKey('tree7', treeData));//0你build了嗎?
開(kāi)發(fā)環(huán)境好像無(wú)效
注冊(cè)組件了嗎,在module中
原先看到過(guò)類似的效果,你看看這個(gè)是你想要的嗎?
codepen demo
Update:
body,
html,
div {
background: #292a38;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
text-align: center;
}
svg {
width: 200px;
height: 150px;
cursor: pointer;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
path {
fill: none;
-webkit-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25);
-moz-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25);
-o-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25);
-ms-transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25);
transition: stroke-dashoffset 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25), stroke-dasharray 0.5s cubic-bezier(0.25, -0.25, 0.75, 1.25);
stroke-width: 40px;
stroke-linecap: round;
stroke: #a06ba5;
stroke-dashoffset: 0px;
}
path#top,
path#bottom {
stroke-dasharray: 240px 950px;
}
path#middle {
stroke-dasharray: 240px 240px;
}
.cross path#top,
.cross path#bottom {
stroke-dashoffset: -650px;
stroke-dashoffset: -650px;
}
.cross path#middle {
stroke-dashoffset: -115px;
stroke-dasharray: 1px 220px;
}
codePen可以查看編譯后的CSS和JS:
<navigator/>沒(méi)加url
你是怎么適配的? 怎么個(gè)不正常 換行?
你可以創(chuàng)建一個(gè)service, 因?yàn)槟氵@個(gè)功能就是做stickness嘛, 所以可以叫SticknessService,
在component注入這個(gè)service, ngOnInit()的時(shí)候去根據(jù)對(duì)應(yīng)的標(biāo)識(shí)讀取對(duì)應(yīng)的數(shù)據(jù)。
因?yàn)閍ngular service是單例模式的,所以一旦初始化后,這個(gè)service就會(huì)在了。
用localStorage也是可以做得,類似的原理。 localStorage更適用于在angular中打開(kāi)的多個(gè)tab的情況下。
所以你這種情況使用service就可以了。
還有一種就是使用Router來(lái)做,但這個(gè)適用于參數(shù)不是特別多,而且很簡(jiǎn)單,比如數(shù)字,字符串等。
如果你需要存數(shù)組,或者對(duì)象,還是推薦使用service。
在component中可以注入router,在ngOnInit的時(shí)候監(jiān)聽(tīng)router的params事件
this.router.params.subscribe((parmas: any) => {
//.....
}這個(gè)自帶的輪播插件有個(gè)很奇怪的問(wèn)題,圖片如果從本地加載的話是可以加載出來(lái)的,但是如果是從后臺(tái)接口動(dòng)態(tài)獲取的,圖片就加載不出來(lái) ,必須判斷是否從后臺(tái)接口里獲取到了img數(shù)據(jù)列表才能顯示就是這個(gè)判斷*ngIf="len>1"
<ion-slides *ngIf="len>1" #Slides pager autoplay="1000" speed="600" (ionSlideAutoplayStop)="auto()" loop="true" autoplayDisableOnInteration="true">
<ion-slide *ngFor="let sl of banner">
<div class =“swiper-zoom-container”>
<img src="{{sl.imageUrl}}">
</div>
</ion-slide>
</ion-slides>
//頁(yè)面進(jìn)入的時(shí)候開(kāi)啟自動(dòng)播放(這里也要做判斷ngIf="len>1",不然會(huì)報(bào)startAutoplay()函數(shù)未定義),以下情況也是一樣的
ionViewDidEnter(){
this.flag = false;
if(this.len>1){
this.slides.startAutoplay();
}
}
//頁(yè)面離開(kāi)的的時(shí)候停止自動(dòng)播放
ionViewDidLeave(){
this.flag = true;
if(this.len>1){
this.slides.stopAutoplay();
}
}
//這個(gè)方法就是用戶操作過(guò)輪播圖之后,自動(dòng)播放的效果就停止了,起到監(jiān)聽(tīng)停止自動(dòng)播放的事件,然后開(kāi)啟自動(dòng)播放
auto(){
if(this.len>1){
if(!this.flag){
this.slides.startAutoplay();
}
}
this.files是個(gè)類數(shù)組吧,取第一個(gè)reader.readAsDataURL(file[0]);
好像是IOS下1px的邊框會(huì)被壓縮到0.5從而導(dǎo)致模糊,以前聽(tīng)人提到過(guò),但是沒(méi)注意怎么解決的,現(xiàn)在的框架應(yīng)該有解決過(guò)。
可以啊.每個(gè)線條畫出來(lái)的模塊,用一個(gè)多邊形div來(lái)做.然后旁邊弄些顏色.
點(diǎn)擊一個(gè)div.把div的背景顏色設(shè)置成選擇的顏色.
提交直接提交div的背景顏色就行,#f0f0f0這種的.
初學(xué)js
初學(xué)就不要去想這些問(wèn)題。
1、瀏覽器解析js代碼,生成函數(shù)showkey,document將函數(shù)showkey與一個(gè)keydown事件綁定
瀏覽器只是外在的一個(gè)應(yīng)用,從技術(shù)角度,它又是由內(nèi)核加外圍的管理調(diào)度邏輯構(gòu)成的。內(nèi)核主要又分 html 與 css 的解析渲染, js 的解析執(zhí)行。這些綜合起來(lái),才能解釋 document 這類 api ,及 showkey 這個(gè)函數(shù)定義。
2、按下某個(gè)按鍵
3、鍵盤設(shè)備將按鍵信息傳送給cpu
管理設(shè)備是在“操作系統(tǒng)”這一層,不會(huì)到 cpu 這一層。而瀏覽器是建立在“操作系統(tǒng)”基礎(chǔ)上的。
4、cpu捕獲到這個(gè)按鍵信息,將其傳送到瀏覽器進(jìn)程中生成一個(gè)事件對(duì)象event:keydownevent
5、瀏覽器document安裝了事件監(jiān)聽(tīng)程序,在事件更新中獲得按鍵事件event:keydownevent
6、document發(fā)現(xiàn)這個(gè)事件與showkey函數(shù)綁定,然后調(diào)用showkey
7、然后document和事件監(jiān)聽(tīng)程序清除這個(gè)事件的記錄,等待下一個(gè)事件
完全錯(cuò)誤,概念混亂。難得說(shuō)了。
我比較好奇 index++的時(shí)候index是不是var出來(lái)的,閉包了解一下?
看起來(lái)你需要 gulp-header 和 gulp-footer。
或許你可以調(diào)整一下思路:不在用戶輸入時(shí)處理,而是在展示時(shí)才處理內(nèi)容。
你之前的思路: 用戶點(diǎn)擊表情,又是判斷輸入框里之前的內(nèi)容,又是存儲(chǔ)表情,等等。
其實(shí)這些都不用,我們換成這樣的思路:先不管用戶如何輸入,他怎么輸入,輸入框就怎樣展示,比如他輸入兩個(gè)表情與一個(gè)文本,那么輸入框的內(nèi)容是[微笑]123[撇嘴],等到用戶點(diǎn)擊發(fā)送按鈕要把內(nèi)容展示到聊天框里時(shí),再把[微笑]和[撇嘴]轉(zhuǎn)換為表情。
提供一個(gè)簡(jiǎn)單的代碼:
// 存儲(chǔ)所有表情,方便轉(zhuǎn)換
/*
emj_arry = {
[冷汗] : {
text: "冷汗",
url: "http://pub.idqqimg.com/lib/qqface/17.gif"
},
[發(fā)呆] : {
text: "發(fā)呆",
url: "http://pub.idqqimg.com/lib/qqface/3.gif"
}
}
*/
var emj_arry = {}; //表情列表
var emj_i = document.getElementsByTagName('i');
for(var i=0, len=emj_i.length; i<len; i++){
var item = emj_i[i];
// emj_arry.push( '[' + item.title + ']' );
emj_arry[ '[' + item.title + ']' ] = {
text : item.title,
url : 'http://pub.idqqimg.com/lib/qqface/' + i + '.gif'
};
}
// 將文字轉(zhuǎn)換為圖片
function emoj2img(text){
return text.replace(/\[(.*?)\]/g, function(word){
return '<img src="'+emj_arry[word].url+'" alt="'+word+'" />';
})
}
// 輸入表情
document.querySelector('#div_ul').addEventListener('click', function(event){
if(event.target.tagName=='I' && event.target.title!=='delKey'){
send_txt.value = send_txt.value + '[' + event.target.title + ']';
}
});
// 點(diǎn)擊按鈕發(fā)送
document.querySelector('button').addEventListener('click', function(){
var textarea = document.querySelector('#send textarea'),
value = textarea.value;
document.querySelector('#div_1').innerHTML += '<p>'+emoj2img(value)+'</p>'; // 把表情轉(zhuǎn)換為圖片后輸出
textarea.value = '';
});有些插件沖突了,不知從什么版本開(kāi)始一直有這個(gè)問(wèn)題,以前都沒(méi)有。插件卸載了又不爽,只能將就了
一種你在根組件注入store,如<App store={store}/> , 子組件可以通過(guò)props獲取,但這樣子組件每一層都要接受并傳遞store,孫子組件就可以得到store
還有一種就是用context,子組件通過(guò)getChildContext()獲取store
總結(jié)下來(lái)就是最好使用react-redux庫(kù)
app.state.ts 中的 createAppState 一直在返回一個(gè)新的new出來(lái)的對(duì)象。
北大青鳥(niǎo)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)開(kāi)發(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ū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。