鍍金池/ 問答

(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)目

安于心 回答

這個(gè)問題已經(jīng)有人在 Swoole 提過 issue。

可能是高版本gcc+低版本內(nèi)核導(dǎo)致的,libc中有signalfd的函數(shù),但是linux內(nèi)核不支持。可以修改Makefile去掉HAVE_SIGNALFD或升級Linux內(nèi)核。

具體可以去看下 這個(gè)問題。

笑浮塵 回答

發(fā)送事件的時(shí)候新的組件還沒綁定事件怎么監(jiān)聽得到呢?
https://codesandbox.io/s/p7vk...

氕氘氚 回答

最后解決方案 new ExtractTextPlugin("[name].[contenthash:8].css")
打包的時(shí)候不給css指定文件夾就OK了。。
但是原因還不是不清楚,哪位路過大神可以給指點(diǎn)一下 不勝感激

心癌 回答

指向同一個(gè)component的默認(rèn)會使用原先的組件

  1. watch
  2. 路由守衛(wèi)

用這兩個(gè)去監(jiān)聽更新數(shù)據(jù)吧
好像還有一種路由設(shè)置key的方案

淡墨 回答

逗號運(yùn)算符。
先計(jì)算左邊的操作數(shù),然后計(jì)算右邊的操作數(shù),最后返回右操作數(shù)的值。

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的編譯分為JITAOT兩種,聽上去特別高大上吧?其實(shí)就是即時(shí)編譯和預(yù)編譯的區(qū)別。正常情況下,你ng build得到的是即時(shí)編譯也就是JIT的結(jié)果,但如果你加個(gè)參數(shù)ng build --aot,你就得到了AOT也就是預(yù)編譯的結(jié)果,這時(shí)候Angular就幫你產(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ù)?還是啥?

  • apache、nginx 之類的反向代理了解一下?
  • docker 了解一下?
  • 端口隔離了解一下?
傻叼 回答

應(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);