我试图用C/C++做一个JSON Restful Web服务.我已经尝试过Axis2/C和Staff,它非常适合XML序列化/反序列化,但不适用于JSON.
我有两个相互导航的React Native组件(Alpha和Beta); 但是,这会产生循环依赖,而React Native似乎无法处理这些依赖.
在Alpha中要求Beta工作正常,但要求Alpha中的Alpha返回一个空对象.尝试使用无效组件推送路由时会引发错误.
循环依赖可以在React Native中使用吗?如果没有,我该如何解决这个问题呢?
index.ios.js
'use strict';
var React = require('react-native');
var Alpha = require('./Alpha');
var {
AppRegistry,
NavigatorIOS,
StyleSheet,
Text,
View,
} = React;
var ExampleProject = React.createClass({
render() {
return (
<NavigatorIOS
style={styles.container}
initialRoute={{
component: Alpha,
title: Alpha.title,
wrapperStyle: styles.wrapper
}} />
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white'
},
wrapper: {
paddingTop: 64
}
});
AppRegistry.registerComponent('ExampleProject', () => ExampleProject);
Run Code Online (Sandbox Code Playgroud)
Alpha.js
'use strict';
var React = require('react-native');
var …Run Code Online (Sandbox Code Playgroud) 我在规范中找不到任何相关信息:http://geojson.org/geojson-spec.html
是否允许有properties钥匙FeatureCollection?或者它仅适用于功能?
如果可能,我如何访问其中的属性openlayers?提前致谢.
我想检测控制验证器中的更改(添加/删除)。例如,我有一个没有任何验证器的控件,然后我想添加“Validators.required”。
this.formGroup = this.fb.group({
name: [null]
});
// And then, let's say 1 second later, something like this happens:
setTimeout(() => {
this.formGroup.controls['name'].setValidators(Validators.required);
}, 1000);
Run Code Online (Sandbox Code Playgroud)
在模板中:
<input myDirective formControlName="name">
Run Code Online (Sandbox Code Playgroud)
在指令中myDirective,我想检测何时setValidators发生,或者更一般地说,我想知道该控件的验证器何时发生更改。
在我的构造函数中myDirective注入 NgControl 这样我就可以访问它:
constructor(private ngControl: NgControl) {
}
Run Code Online (Sandbox Code Playgroud)
但现在我不知道如何实现这一目标。
我有一个可行的解决方案,使用ngDoCheck和this.ngControl.control.validator({} as AbstractControl)能够检索验证器,然后与原始验证器进行比较等。但这很丑陋,因为这个函数不必要地执行了很多次。
我也尝试过 es6 Proxy (代理this.ngControl.control),但我没有运气,当验证器更改时我没有收到通知。
实现这一目标的最佳方法是什么?为什么 Angular 不为此公开 Observable?
编辑:
我已经看到,如果我这样做:
this.formGroup.controls['name'].setValidators(Validators.required);
this.formGroup.controls['name'].updateValueAndValidity();
Run Code Online (Sandbox Code Playgroud)
然后在myDirective指令中我可以订阅this.ngControl.control.statusChanges,然后将旧验证器与新验证器进行比较,以查看是否添加/删除了某些验证器等。
仍然不理想,因为状态变化并不意味着验证器功能发生了变化,而是一个不错的解决方案。