我在SO中搜索过类似的问题,但我没有找到任何解决我具体案例的问题.有许多技术可以在角度组件之间共享数据,我已经阅读了有关组件通信的这篇文章:https://angular.io/docs/ts/latest/cookbook/component-communication.html
但是,这里描述的技术都不适合我,因为我的组件在不同的路线上.本文主要描述父子组件通信,有些情况可能适用于兄弟组件,只要它们同时加载.
我的情况与Angular 2 Heroes教程非常相似:我有一条路线显示一个包含客户列表的表(而不是英雄).当用户点击特定客户时,我触发路线更改以显示包含所选客户(而非英雄)数据的表单.
英雄教程执行服务调用以检索选定的英雄数据,但我想避免无用的额外AJAX调用,因为这些数据已经在内存中.我只想将选定的客户数据传递给客户表单组件,以便立即显示.
我正在考虑一个"全局会话"服务,我可以存储和检索我想要的任何对象,但我不确定这是一个好主意.还有其他更适当的方法吗?
我正在开始一个新的Web项目并尝试使用TypeScript,主要是作为ES6转换器,还有类型检查的额外好处,特别是对于现有的库,例如jQuery和DefinitelyTyped类型定义.
从最新版本开始,TypeScript既支持自己的内部模块,也支持ES6模块,后者称为"外部"模块.因为ES6比TypeScript更标准,我的意图是使用ES6 /外部模块而不是传统/内部TypeScript模块.
我在几个文件/模块中定义了自己的代码,但我希望构建生成一个可以从浏览器加载的.js文件.
问题是,据我所知,TypeScript只能在使用自己的模块格式时生成单个输出文件.如果我尝试使用ES6外部模块,那么它会为每个.ts文件生成一个单独的.js文件.
这意味着我需要使用browserify连接它们,但我也想要源映射支持,这意味着我应该为输入和输出源映射配置browserify,然后将它与exorcist组合,以便从包中提取源映射.
这看起来像一个非常复杂的构建设置.是不是有一种更直接的方式,也许是TypeScript直接支持?什么是最好的方法?您有什么推荐的吗?
我知道 svelte 非常适合在某些属性发生变化时自动更新组件。但我的情况略有不同。为了简化,假设我有一个父 Svelte 组件和两个子组件:
<div>
<child1 onButtonClicked={handleClick} />
<child2 (1) />
</div>
<script>
function handleClick() {
(2)
}
</script>
Run Code Online (Sandbox Code Playgroud)
我希望当用户单击内部按钮时<child1>,内部会执行某些功能<child2>。我可以放入什么(1)来(2)实现这种行为?
我能想到的就是有一个计数器,在内部递增它handleClick并将计数器传递给<child2>,然后使用$:in<child2>来捕捉变化。但这将是一个非常人为的解决方法。当然,我可以将我想要执行的代码移至<child2>父组件,但这甚至是一种更丑陋的解决方法,因为<child2>这是真正知道要做什么的方法。
我正在通过DOM元素注册一个点击监听器jQuery.on().如果稍后将该元素从DOM中删除 - 可能是间接的,例如通过替换某些父级的内容$(parent).html(...),我是否仍然需要通过删除我的处理程序jQuery.off()?
即使该元素不再触发任何事件,我担心潜在的内存泄漏.一旦元素从DOM中删除,jQuery或浏览器是否会处理并丢弃所有已注册的处理程序?
我正在尝试实现与node.js集成的C++扩展.此扩展将在内部调用一些阻塞调用,因此它需要为node.js世界提供非阻塞接口.
如https://nodejs.org/api/addons.html中所述,有两种方法可以实现非阻塞回调:
a)通过使用JavaScript函数的简单回调.所以我的扩展必须生成一个线程并立即返回,让该线程调用阻塞代码,然后在返回时调用JavaScript回调.这似乎相对简单.
b)通过使用libuv库,如果我理解正确,将事件发布到node.js事件循环.我没有详细阅读过libuv文档,但实现起来似乎相当复杂.
我的偏好当然是a),但我不知道其含义是什么.如果从不同的线程调用回调是否有任何问题,从而将node.js标准方法限制为非阻塞IO?或者是否需要使用libuv来正确处理我的代码及其阻塞调用的线程?
非常感谢您的帮助.
javascript ×4
angular ×1
browserify ×1
build ×1
c++ ×1
dom ×1
ecmascript-6 ×1
html ×1
jquery ×1
node.js ×1
svelte ×1
typescript ×1