app
|-plugins
|-plugin1
|-config.json
|-plugin1.module.ts
|-plugin1.component.ts
|-plugin2
|-config.json
|-plugin2.module.ts
|-plugin2.component.ts
Run Code Online (Sandbox Code Playgroud)
如上所示,我有"app/plugins"文件夹,其中包含插件.每个插件将包含一个"config.json"文件,它将告诉一些配置,包括 -
{
path: "feature1",
moduleFile: "feature1.module",
moduleClassName: "Feature1Module"
}
Run Code Online (Sandbox Code Playgroud)
所以我想要的是,在应用程序引导之前,它将扫描"app/plugins"文件夹并加载所有插件配置,并懒惰地注册所有模块路由.对于上面的例子,路线将是
{
path: "feature1",
loadChildren: "app/plugins/plugin1/plugin1.module#Plugin1Module"
}
Run Code Online (Sandbox Code Playgroud)
这样,我们可以将新插件放入插件文件夹并刷新应用程序,我们新删除的插件已启动并运行.
谁知道我怎么能做到这一点?
注意:我在angular2最新(2.1.0)
简短的介绍:
Nginx在docker上运行,如何配置nginx以便它将调用转发给主机.
详细描述:
我们有一个Web应用程序与几个后端通信(让我们说rest1,rest2和rest3).我们负责rest1
.
让我们考虑一下,我rest1
在我的电脑上手动启动并在2345端口上运行.我希望nginx(在docker中运行)将所有调用重定向rest1
到我自己的运行实例(注意,实例在主机上运行,而不是任何容器,而不是在docker中).对于rest2
和rest3
其他一些docker节点或者可能是其他一些服务器(谁在乎).
我在寻找的是:
docker-compose.yml
配置(如果需要).提前致谢.
我有这样的模特 -
{
"name": "MakeCallTestConfiguration",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"id": {
"type": "number",
"id": true,
"generated": true
},
"destination": {
"type": "string",
"required": true
},
"clientId": {
"type": "number",
"required": true
},
"logTime":{
"type" : "date",
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
Run Code Online (Sandbox Code Playgroud)
对于"logTime",如何自动生成时间戳?我的意思是
"TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"
这就是我的合同的样子 -
pragma solidity >=0.4.25 <0.8.0;
contract Calculator {
uint public result;
event Added(address caller, uint a, uint b, uint res);
constructor() public {
result = 777;
}
function add(uint a, uint b) public returns (uint, address) {
result = a + b;
emit Added(msg.sender, a, b, result);
return (result, msg.sender);
}
}
Run Code Online (Sandbox Code Playgroud)
上述合约部署在 Ropsten 测试网上。我正在尝试add(...)
通过事务调用该函数。我的代码看起来像这样 -
const accountAddress = rtUtil.getAccountAddress();
const accountPk = Buffer.from(rtUtil.getAccountAddressPk(), "hex");
const contract = await rtUtil.getCalculatorContract();
const data = contract.methods.add(3, 74).encodeABI();
const web3 …
Run Code Online (Sandbox Code Playgroud) 我正在寻找可以从Android调用loopback的自定义方法的示例.为了解释更多,假设我在服务器端有一个名为"greet(name)"的方法,它将迎接某人.我想从Android调用它.任何例子,或链接都可以.
提前致谢.
Jahid
下面给出的代码,做的document.querySelector('createButton')
和Polymer.dom(this.$).querySelector('createButton')
应该返回相同的元素?
如果是这样,哪一个是最佳做法?不是第一种情况我们在整个dom树上搜索(我的意思是包括主机/根)?在第二个我们正在搜索这个元素的dom树?
这些都可以在任何时候起作用吗?因为我相信我遇到了一种情况,所以第二种情况就在内部工作ready
(我的意思是当触发Web组件就绪事件时).
<dom-module id="bortini-tv-create">
<template>
<form>
<paper-input label="Name" value="{{tv.name}}"></paper-input>
<paper-input label="Logo" value="{{tv.logo}}"></paper-input>
<paper-input label="Address" value="{{tv.address}}"></paper-input>
<paper-input label="Web site" value="{{tv.webSite}}"></paper-input>
<paper-input label="Registration number" value="{{tv.regNumber}}"></paper-input>
<br/>
<br/>
<paper-button id="createButton" raised on-tap="handleTvCreate">
<iron-icon icon="redeem"></iron-icon>
Add
</paper-button>
<paper-button id="cancelButton" raised on-tap="handleCancelTvCreate">
<iron-icon icon="cancel"></iron-icon>
Cancel
</paper-button>
</form>
<iron-ajax
id="ironAjax"
url="/api/tv"
content-type="application/json"
handle-as="json"
method="POST">
</iron-ajax>
<paper-toast id="toast"
duration="3000"
text="TV {{tv.name}} has been created">
</paper-toast>
</template>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
<iron-pages attr-for-selected="data-route" selected="{{route}}">
<section data-route="home">
<paper-material elevation="1">
<bortini-home></bortini-home>
</paper-material>
</section>
<section data-route="tv">
<paper-material elevation="1">
<iron-pages attr-for-selected="data-route" selected="{{route}}">
<section data-route="tvList">
<paper-material elevation="1">TV list</paper-material>
</section>
<section data-route="tvAdd">
<paper-material elevation="1">TV Add</paper-material>
</section>
<section data-route="tvEdit">
<paper-material elevation="1">TV edit</paper-material>
</section>
<section data-route="tvView">
<paper-material elevation="1">TV details</paper-material>
</section>
</iron-pages>
</paper-material>
</section>
<section data-route="users">
<paper-material elevation="1">
<h2 class="paper-font-display2">Users</h2>
<p>This is the users section</p>
<a href="/users/Rob">Rob</a>
</paper-material>
</section>
<section data-route="user-info">
<paper-material elevation="1">
<h2 class="paper-font-display2">
User:<span>{{params.name}}</span>
</h2>
<div>This is <span>{{params.name}}</span>'s section</div>
</paper-material>
</section>
<section data-route="contact">
<paper-material elevation="1">
<h2 class="paper-font-display2">Contact</h2>
<p>This …
Run Code Online (Sandbox Code Playgroud) loopbackjs ×2
polymer ×2
polymer-1.0 ×2
strongloop ×2
android ×1
angular ×1
docker ×1
ethereum ×1
jwt ×1
nginx ×1
oauth ×1
oauth-2.0 ×1
security ×1
solidity ×1
typescript ×1
web3js ×1