小编Lui*_*spo的帖子

Angular 2:跨不同路线共享数据

我在SO中搜索过类似的问题,但我没有找到任何解决我具体案例的问题.有许多技术可以在角度组件之间共享数据,我已经阅读了有关组件通信的这篇文章:https://angular.io/docs/ts/latest/cookbook/component-communication.html

但是,这里描述的技术都不适合我,因为我的组件在不同的路线上.本文主要描述父子组件通信,有些情况可能适用于兄弟组件,只要它们同时加载.

我的情况与Angular 2 Heroes教程非常相似:我有一条路线显示一个包含客户列表的表(而不是英雄).当用户点击特定客户时,我触发路线更改以显示包含所选客户(而非英雄)数据的表单.

英雄教程执行服务调用以检索选定的英雄数据,但我想避免无用的额外AJAX调用,因为这些数据已经在内存中.我只想将选定的客户数据传递给客户表单组件,以便立即显示.

我正在考虑一个"全局会话"服务,我可以存储和检索我想要的任何对象,但我不确定这是一个好主意.还有其他更适当的方法吗?

javascript angular

8
推荐指数
1
解决办法
4245
查看次数

TypeScript与ES6模块的最佳方法是什么?

我正在开始一个新的Web项目并尝试使用TypeScript,主要是作为ES6转换器,还有类型检查的额外好处,特别是对于现有的库,例如jQuery和DefinitelyTyped类型定义.

从最新版本开始,TypeScript既支持自己的内部模块,也支持ES6模块,后者称为"外部"模块.因为ES6比TypeScript更标准,我的意图是使用ES6 /外部模块而不是传统/内部TypeScript模块.

我在几个文件/模块中定义了自己的代码,但我希望构建生成一个可以从浏览器加载的.js文件.

问题是,据我所知,TypeScript只能在使用自己的模块格式时生成单个输出文件.如果我尝试使用ES6外部模块,那么它会为每个.ts文件生成一个单独的.js文件.

这意味着我需要使用browserify连接它们,但我也想要源映射支持,这意味着我应该为输入和输出源映射配置browserify,然后将它与exorcist组合,以便从包中提取源映射.

这看起来像一个非常复杂的构建设置.是不是有一种更直接的方式,也许是TypeScript直接支持?什么是最好的方法?您有什么推荐的吗?

javascript build browserify typescript ecmascript-6

6
推荐指数
1
解决办法
379
查看次数

Svelte:如何通知子组件或兄弟组件

我知道 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>这是真正知道要做什么的方法。

javascript svelte

6
推荐指数
1
解决办法
4084
查看次数

删除DOM元素后我应该调用jQuery.off吗?

我正在通过DOM元素注册一个点击监听器jQuery.on().如果稍后将该元素从DOM中删除 - 可能是间接的,例如通过替换某些父级的内容$(parent).html(...),我是否仍然需要通过删除我的处理程序jQuery.off()

即使该元素不再触发任何事件,我担心潜在的内存泄漏.一旦元素从DOM中删除,jQuery或浏览器是否会处理并丢弃所有已注册的处理程序?

html javascript jquery dom javascript-events

3
推荐指数
1
解决办法
874
查看次数

Node.js和C/C++集成:如何正确实现回调?

我正在尝试实现与node.js集成的C++扩展.此扩展将在内部调用一些阻塞调用,因此它需要为node.js世界提供非阻塞接口.

https://nodejs.org/api/addons.html中所述,有两种方法可以实现非阻塞回调:

a)通过使用JavaScript函数的简单回调.所以我的扩展必须生成一个线程并立即返回,让该线程调用阻塞代码,然后在返回时调用JavaScript回调.这似乎相对简单.

b)通过使用libuv库,如果我理解正确,将事件发布到node.js事件循环.我没有详细阅读过libuv文档,但实现起来似乎相当复杂.

我的偏好当然是a),但我不知道其含义是什么.如果从不同的线程调用回调是否有任何问题,从而将node.js标准方法限制为非阻塞IO?或者是否需要使用libuv来正确处理我的代码及其阻塞调用的线程?

非常感谢您的帮助.

c++ multithreading node.js node.js-addon

3
推荐指数
1
解决办法
1513
查看次数