我注意到可以在 Angular 中创建同步或异步 EventEmitter。据我所知,默认是同步。
https://github.com/angular/angular/blob/master/packages/core/src/event_emitter.ts
据我所知,sync 意味着事件处理程序(generatorOrNext、error 和 complete)在与事件生成相同的变更检测周期中执行,而 async 意味着事件处理程序在另一个变更检测中执行循环(因为处理程序包含在触发更改检测的 setTimeout 方法中)。
当异步行为是一个优势(可能是一些与性能相关的用例)时,我想不出具体的用例?也许有人可以给我一个简短的具体用例?
我已经实现了一个CustomDateAdapter,如下所述:https : //medium.com/@esanjiv/working-with-custom-dateadapter-for-angular-material-2-datepicker-76d4446277dc
现在,我正在进行Angular Material 6迁移,并且出现以下错误
core.js:1598 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'TRIDENT' of undefined
TypeError: Cannot read property 'TRIDENT' of undefined
at CustomDateAdapter.NativeDateAdapter [as constructor] (core.es5.js:792)
at new CustomDateAdapter (custom-date-adapter.ts:21)
at _createClass (core.js:9262)
...
Run Code Online (Sandbox Code Playgroud)
core.es5.js第792行是这样的:
_this.useUtcForDisplay = !platform.TRIDENT;
Run Code Online (Sandbox Code Playgroud)
似乎平台未定义。
我注意到NativeDateAdapter的构造函数已在材料6中进行了更改,它还需要一个平台作为输入。
constructor(matDateLocale: string, platform: Platform);
Run Code Online (Sandbox Code Playgroud)
我缺少什么?如何在Angular Material 6中实现CustomDateAdapter?
我有以下HTML
<div class="container">
<div class="item-1">
item 1
<div>
<div class="item-2">
item 2
<div>
</div>
Run Code Online (Sandbox Code Playgroud)
因此,我创建了以下代码笔示例http://codepen.io/anon/pen/EWXpVV
我要在父div的顶部放置蓝色div。父div的剩余高度应填充第二个子div(红色的div)。
我如何才能实现红色div的高度完全覆盖父div的区域?
<div class="container">
<div class="item-1">
item 1
<div>
<div class="item-2">
item 2
<div>
</div>
Run Code Online (Sandbox Code Playgroud)
.container {
background-color: green;
height: 200px;
}
.item-1 {
background-color: blue;
}
.item-2 {
background-color: red;
}Run Code Online (Sandbox Code Playgroud)
我正在尝试从 REST API 获取响应数据并将其显示在我的 vue.js 应用程序中,如下所示:
var database = new Vue({
el: '#database',
data: {
databaseConfiguration: {
type: '',
url: '',
port: '',
username: '',
password: ''
},
errors: []
},
created: function () {
axios.get('/config/database')
.then(function (response) {
this.databaseConfiguration = response.data;
console.log(response.data);
})
.catch(function (error) {
this.errors.push(error);
console.log(error);
})
}
}
)
Run Code Online (Sandbox Code Playgroud)
如果我调试它,我会发现响应是从 REST API 正确获取的。但不幸的是数据没有显示在html页面上。html 代码如下所示:
<div id="database" class="panel panel-default panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Database Configuration</h3>
</div>
<div class="panel-body">
<form class="form-horizontal">
<div class="form-group">
<label for="inputType" class="col-sm-2 control-label">Type</label>
<div …Run Code Online (Sandbox Code Playgroud) 我想从序列化中排除一些默认属性。我有以下课程
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
@JsonInclude(Include.NON_DEFAULT)
@Builder
public class RunTime
{
@JsonProperty
@Builder.Default
private String mystring = "any";
@JsonProperty
@Builder.Default
private Boolean myboolean = true;
@JsonProperty
@JsonInclude(Include.ALWAYS)
@Builder.Default
private Boolean always = true;
}
Run Code Online (Sandbox Code Playgroud)
另外我写了这个测试:
@Test
public void test() throws JsonProcessingException
{
RunTime rac = RunTime.builder().build();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rac);
assertThat(json).doesNotContain("mystring");
assertThat(json).doesNotContain("myboolean");
assertThat(json).contains("always");
}
Run Code Online (Sandbox Code Playgroud)
我只想always在 json 字符串中包含布尔属性。不幸的是,测试失败了,因为每个属性都包含在内。但是,当我删除 Lombok 构建器并自己实例化对象时,我注意到所有这些都正常工作。我怎样才能让它与 Lombok 一起工作?
我按如下方式配置了 Apache FtpServer:
@Component
public class FtpDummyServer {
private FtpServer server;
@PostConstruct
public void init() throws FtpException {
..some initialization
this.server = serverFactory.createServer();
this.server.start();
}
@PreDestroy
public void stop() {
this.server.stop();
}
Run Code Online (Sandbox Code Playgroud)
请注意,服务器在@PostConstruct 中自动启动。我在 SpringBoot 中配置了不同的测试,如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MainApplication.class)
@WebIntegrationTest
public class ApplicationTestX {
...
}
Run Code Online (Sandbox Code Playgroud)
当我单独运行测试时,它们成功了。然而,当我一起运行它们时,我得到了一个java.net.BindException: Address already in use: bind. 我怎样才能避免这种情况?