Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loopbackjs 继承模型的远程方法未显示在环回资源管理器中_Loopbackjs_Strongloop - Fatal编程技术网

Loopbackjs 继承模型的远程方法未显示在环回资源管理器中

Loopbackjs 继承模型的远程方法未显示在环回资源管理器中,loopbackjs,strongloop,Loopbackjs,Strongloop,我继承了这样一个环回模型- { "name": "MyModel", "base": "AnotherModel", "idInjection": false, "properties": { "value": { "type": "String" }, "display": { "type": "String" } }, "validations": [],

我继承了这样一个环回模型-

{
    "name": "MyModel",
    "base": "AnotherModel",
    "idInjection": false,
    "properties": {
      "value": {
        "type": "String"
      },
      "display": {
        "type": "String"
      }
    },
    "validations": [],
    "relations": {},
    "acls": [],
    "methods": []
}

而我能够从我的
MyModel.js
文件中调用
AnotherModel
的所有远程方法。但是,
AnotherModel
的远程方法没有显示在我的浏览器上。如何让继承模型的所有远程方法显示在资源管理器中?

发生这种情况的原因是,当您调用
AnotherModel.remoteMethod
时,它只为该模型注册了远程方法,而不注册基于此的模型。要为基于AnotherModel的所有模型调用它,可以执行以下操作:

var originalSetup=AnotherModel.setup;
AnotherModel.setup=function(){//每次调用时都会调用此函数
//该模型是对该模型的扩展。
应用(这个,参数);//如果您的
//AnotherModel基于另一个模型,如PersistedModel。
this.remoteMethod('yourMethod'{
..
});
};
我从中了解到这一点,并检查了persistedModel如何在所有基于它的模型中都具有它的远程方法

还要确保基础模型是公共的。

您应该使用
setup()
来“公开”AnotherModels的函数。 然后在“设置”部分添加远程方法,如下所述:

以下是示例:(它也可以应用于静态函数)

//AnotherModel.js
module.exports=函数(AnotherModel){
...
//假设有两个函数要继承“function1”和“function2”
AnotherModel.prototype.function1=函数(){…}
AnotherModel.function2=函数(){…}
//函数的作用是调用setup()
//因此,放入setup()中的代码将自动获得
//在创建模型时执行。
var originalSetup=anotheroldel.setup;
Anotheroldel.setup=函数(){
//调用原始设置!
应用(这个,参数);
//“此”将在MyModel设置期间指向MyModel
//第一个参数应与函数名匹配
此.remoteMethod('function1'{
接受:{…},
返回:{…},
http:{…});
此.remoteMethod('function2'{
接受:{…},
返回:{…},
http:{…});
}
}
它将显示在API资源管理器中

我希望这能有所帮助,如果你找到其他解决方案,请告诉我!(由于该职位已有一年多的历史)

干杯