鍍金池/ 問答/ HTML問答
兔囡囡 回答

封裝一個可以取消的api class
1.把所有的請求根據(jù)http方法封裝一次(get,post,put,delete)
2.

class ApiWithCancel {
  get = (url, params) => {
    //get為自己封裝的方法, 一下的post, put, del同理
    return this.makeCancelAble(get(url, params));
  }
  post = (url, params) => {
    return this.makeCancelAble(post(url, params));
  }
  put = (url, params) => {
    return this.makeCancelAble(put(url, params));
  }
  delete = (url, params) => {
    return this.makeCancelAble(fectchDel(url, params));
  }
  makeCancelAble = (promise) => {
    return new Promise(( resolve ) =>
      promise.then(val => !this.hasCanceled && resolve(val))
    );
  }
  cancel = () => {
    this.hasCanceled = true;
  }
}

3.在用到的組件里的constructor里,new一個這個class實例

this.api = new ApiWithCancel();

4.用的時候

const res = await this.api.get(url,params);

5.在組件卸載的時候取消

this.api.cancel()

注:代碼可能不能直接用,因為里面有封裝的,但是意思是這個意思,封裝成一個class,每次new一下就可以了。另外數(shù)據(jù)放在redux里也可以避免這種報警,但是這前提是你的這些數(shù)據(jù)或者動作是應該放在redux里的。

刮刮樂 回答

測試服務器上接口是正常的么?

mounted:function(){
  http.get('user/detail').then(function(res) {
     if (res.email == "") {
        this.emailDis = false;
     }
  });
}

本地正常 ,測試環(huán)境有問題。說明是這里的沒有走通 ,接口報錯了,
你console.log(res)看一下,res.email 有么

data{
 return {
     emailDis:true,
     sideForm:{
       email:''
     }
   }
}

初始值的時候最好是 key:value 的形式,沒有value就用 ""

帥到炸 回答

謝邀.
首先,不可能存在你說的 數(shù)據(jù)不確定的情況
在你即將畫圖的瞬間 你一定已經(jīng)得到確切的數(shù)據(jù)
問題可轉(zhuǎn)化為如何找到最大值

方案1:硬剛數(shù)據(jù)最大值

假設(shè)從接口得到的數(shù)據(jù)類似

const res = {
    code:0,
    message:"success",
    data:[
        // 0號位時間戳,1號位為值
        [1533698210801,20],
        [1533698212822,30],
        [1533698230844,10],
        [1533698233901,50],
        [1533698236780,20],
    ]
};
// 先整理出一個一維數(shù)組
const values = res.data.map(([,v])=>v);
// 取出最大值
const max = Math.max(...values);
// 拿著最大值稍微往上按百分比再加一點去設(shè)置你的圖表option,略去

方案2:讀文檔

clipboard.png
你寫成

max: function(value) {
    /*往上預留20%*/
    return value.max * 1.2;
}

不就好了

傲寒 回答

你可以理解成把stateaction都結(jié)構(gòu)到一個新對象里,實現(xiàn)了對象合并的功能,注意是淺拷貝,不得不說這個特性超好用

懷中人 回答

沒有很好的辦法,只能通過js去控制

六扇門 回答

請檢查是否是按需引入的iview.
如果是,請改為全家桶引入。
目前我也在找更優(yōu)雅的解決辦法。

朕略傻 回答

走在路上,突然想到了這是什么問題。。

var oScript = document.createElement("script"); 
oScript.src = 'http://suggestion.baidu.com/su?wd=' + this.value + '&cb=solve';
document.body.appendChild(oScript);

script在標簽插入DOM中才向baidu請求數(shù)據(jù),請求到數(shù)據(jù),會調(diào)用solve回調(diào)函數(shù),但當前全局作用域中沒有solve函數(shù),所以會執(zhí)行失敗。。

涼薄 回答

第二次被邀請,所以去查了一下文檔,文檔里沒有說 confirm() 會返回 Promise 對象,所以自然不能用 .then() 只能用回調(diào)。

所以題主為什么不自己去看下文檔呢?你都選擇用這個組件庫了,好好看下文檔不行么?

如果你希望用 Promise 的方式,可以自己封裝一下,并且去這個 issue里表態(tài)。

export const myConfirm(options) {
  return new Promise((resolve, reject) => {
    Vue.$vux.confirm({
      ...options,
      onConfirm() {
        resolve();
      },
      onCancel() {
        reject();
      },
    });
  });
}
空白格 回答

lsof -i:端口號 先確認服務開啟。
如果是node往下看 沒有的話是沒開成功 有服務但是沒node 記住 pid sudo kill -9 pid
然后嘗試訪問0.0.0.0或127.0.0.1
如果ok 是你host的問題
如果不ok 就繼續(xù)等回復。

陌顏 回答

我覺得你的this出問題了,傳入的時候的this可能還是vue的,但是后來的未必還是了,建議先var _this = this;試試

另外你的賦值在一個回調(diào)函數(shù)里去執(zhí)行的,你在外面去獲取有可能賦值還沒有完成呢

夢若殤 回答

1,首先全局引用釘釘?shù)?dingtalk.js 文件

<!-- 釘釘-->
<script src="http://g.alicdn.com/dingding/open-develop/1.6.9/dingtalk.js"></script>

2,然后,這個 api 方法是需要鑒權(quán)的,JSAPI權(quán)限驗證配置,樓主是不是沒有經(jīng)過 dd.config 配置

毀與悔 回答

只有通過setState方法去修改state。相應的dom數(shù)據(jù)就會發(fā)生改變。

風清揚 回答

@media only screen and (device-width:1920px){

愛的點點滴滴

}

任她鬧 回答

下面通過Object.defineProperty做的一個簡單實現(xiàn),供你參考:

var obj = {
    rollback:function(){
        if(this['old_value'])
            this.value = this['old_value'];
    },
    save:function(){
        delete this['old_value'];
    }
}

Object.defineProperty(obj, "name",{
    set:function(newVal){
        this['old_value'] = this.value;
        this.value =  newVal;
    },
    get:function(){
        return this.value;
    }
})



obj.name="abc";
console.log(obj.name) //輸出abc
obj.name="123";
console.log(obj.name) //輸出123
obj.rollback()
console.log(obj.name) //輸出abc
obj.name="def";
console.log(obj.name) //輸出def
obj.save()
console.log(obj.name) //輸出def


將會輸出

abc
123
abc
def
def
脾氣硬 回答

已經(jīng)解決問題,應該直接使用mongoose的鏈式操作進行查詢

愿如初 回答

title在源碼里面是寫死的,沒有porps可以傳,建議將data進行深度處理一下,將你的name賦值一個title屬性

嘟尛嘴 回答

剛看錯了。其實就是你自定義一個函數(shù)去檢測參數(shù)。下面這個的意思就是,,傳入的data必須有name和age這兩個屬性。

function Person(name, age) {
    this.name = name
    this.age = age
}

props:{
    data:{
       type: Person,
       required: true,
       default: 1
    }
}
拼未來 回答

this就是調(diào)用的時候點.前面的那個,誰調(diào)用的誰就是this
沒有點就是window
你這個 obj.d() 所以調(diào)用的d里面 thisobj,這時候可以this.c()調(diào)用c這時候cthis就是obj
d里面 因為對obj.c做了賦值操作 所以調(diào)用f前面沒有點 所以f里的thiswindow

青裙 回答

這個17可能是定時器的id值:從0開始,依次遞增