我想从后端加载资源后执行一些代码.我能够通过在一个资源请求上使用回调来做到这一点,如下所示:
$scope.resrc = Resrc.query({idResource: 1}, function(){
//CODE AFTER RESOURCE IS LOADED
});
Run Code Online (Sandbox Code Playgroud)
但是尝试使用$ q等待MULTIPLE资源加载然后执行代码对我来说不起作用!(正如他们在这里建议的那样/sf/answers/1018206241/)
$q.all([
$scope.services = Services.query({idResource: 1}),
$scope.brands = Brands.query({idResource: 1})
]).then(function() {
//CODE AFTER RESOURCES ARE LOADED
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在开发一个执行服务器端渲染的 Typescript 应用程序,但我无法理解ReactDomServer.renderToStringand的用法ReactDom.hydrate,特别是他们应该接收的参数类型。
我发现了几个示例(使用 JS)通过以下方式传递 JSX 标记作为参数:
ReactDomServer.renderToString(<ExampleComponent exampleProp="anyValue" />);
Run Code Online (Sandbox Code Playgroud)
但是当我在 Typescript 上尝试这个时,我收到以下错误:
将 'RegExp' 类型转换为 'ExampleComponent' 类型可能是错误的,因为这两种类型与另一种类型都没有足够的重叠。如果这是故意的,请先将表达式转换为“未知”。
我让它工作的方式是调用React.createElement我的组件:
ReactDomServer.renderToString(
React.createElement(ExampleComponent, {exampleProp: anyValue})
)
Run Code Online (Sandbox Code Playgroud)
您是否必须调用React.createElement要渲染的组件(如果是,为什么)?还是我这边的错误/配置错误?