2014-10-29 46 views
0

在模型PUT上,我需要根據其原始值進行自定義驗證。 在beforeUpdate模型鉤子裏面,我可以通過'this'關鍵字訪問'next'函數,'request body'對象(如beforeUpdate參數)並更新模型本身。Loopback:在模型鉤子中獲取模型更改

有沒有辦法得到原始模型或其變化,而不從數據庫中查詢它?

它甚至有可能更新模型鉤子內的當前模型(因爲更改'this'屬性不生效)?

回答

1

聲明:我是一個LoopBack開發人員。

有沒有辦法得到原始模型或其變化,而不從數據庫查詢它?

不,這是不可能的。

看一看的updateAttributes()loopback-datasource-juggler/lib/dao.js的代碼,這被稱爲當你請求PUT /models/:id

inst.setAttributes(data); 

inst.isValid(function (valid) { 
    if (!valid) { 
    if (cb) { 
     cb(new ValidationError(inst), inst); 
    } 
    } else { 
    inst.trigger('save', function (saveDone) { 
     inst.trigger('update', function (done) { 
     // etc. 

該模型執行任何掛鉤之前更新。

+0

有一個問題。有什麼方法可以通過模型鉤子訪問像accesstoken或userID這樣的請求標頭? PLease在這裏看到的問題 http://stackoverflow.com/questions/26927791/access-request-headers-from-beforesave-model-hook – 2014-11-17 05:12:58