小编ant*_*5de的帖子

Angular 2:ChangeDetection和mousemove事件

我有一个Angular 2组件,有很多孩子.由于性能问题,我想检查ChangeDetection检查我的子组件的频率.所以我记录了我的一个子组件的ngAfterViewChecked -callback.

我意识到我的父组件有一个mousemove()- callback,所以每当我将鼠标移到父母上时,我的孩子的ngAfterViewChecked就会被调用.但是我没有更新mousemove()- callback中的任何组件变量.为什么ChangeDetection会为孩子们运行,我该如何阻止它?

希望你们明白这个问题(如果没有请注释,这样我就可以清楚了解问题).谢谢你的帮助!

dom-events angular2-changedetection angular

9
推荐指数
1
解决办法
6744
查看次数

如何在#each完成后执行回调?

#each完成后我遇到回调问题.我有一个名为"content"的模板:

<template name="content">
{{#if Template.subscriptionsReady}}
    {{#each currentData}}
        <div data-cid="{{this._id}}"></div>
    {{/each}}
{{else}}
    Loading...
{{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)

起初我等待订阅,当有可用时,我遍历我的Collection {{#each}}并追加div.我需要的是当for-each循环完成时(换句话说DOM就绪)的一种回调.

Template.content.onRendered()
Run Code Online (Sandbox Code Playgroud)

- >触发到早期

我还尝试在{{each}}之后附加一个图像并在其中激活一个函数onload:

<img style="height:0;width:0" src="*mysource*" onload="callback()">
Run Code Online (Sandbox Code Playgroud)

- >有时工作但不知道可靠吗?

有没有办法得到这个回调?我不担心改变这个模板的结构,如果这带来了解决方案.

javascript meteor spacebars

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

Angular 2:SVG 中的 ng-container

我有一个带有由 SVG 元素组成的模板的组件。这些元素应该有条件地使用*ngIf进行渲染。但由于ng-container不是有效的 SVG 元素,因此无法使用它。所以我使用了 SVG 组元素 (g)。ng-container的优点是它不会出现在DOM中。但是g元素确实出现在 DOM 中,因此 DOM 受到污染。有解决方法吗?

谢谢你的帮助!

svg angular

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

cytoscape.js禁用抓取和移动节点

我在用cytoscapeJS构建图网络时遇到了麻烦。我可以添加节点并处理它们,这非常容易,但是我无法配置细胞空间来禁用“拖动/移动”节点。

我发现有人可以尝试使用JSbin:http ://jsbin.com/vasenatimu/2/edit?html,js,output

看一下“初始化选项”下的http://js.cytoscape.org,我尝试了所有选项,但是它们不能解决我的问题(我将几乎所有选项都设置为false,我仍然可以抓取并选择节点)。

你能帮我吗?

javascript jquery graph cytoscape cytoscape.js

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

虽然屏幕分辨率不会改变,但激活不同的媒体查询

我遇到以下情况:

我有用于screenresolution的媒体查询A:宽度<1200px.

我有screenresolution的媒体查询B:宽度> 1200px.

文档中有一个Button,带有一个click事件处理程序.目前我的screenresolution低于1200px,所以Elements使用媒体查询A.在这个事件处理程序中,我想强制我的元素使用媒体查询B.这可能吗?

我知道如何用JS操纵dom,但这就是我想要避免的.这有解决方案吗?

谢谢你的回复.

html javascript css jquery media-queries

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

MeteorJS:重新订阅/刷新收藏?

我正在研究我的流星项目,我不太了解Meteor的问题是什么.

我有一个订阅,最初在pageload上调用.我没有任何参数订阅以下出版物:

Meteor.publish('testCollection', function(searchitem){
    if(searchitem){
        return testCollection.find({name:searchitem});
    }
    else{
        return testCollection.find({},{
            sort: { rating: -1 },
            limit: 5,
            fields: {
                _id:1,
                name:1,
                description:1
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

这很有效,我从else-case得到了我的结果.
但我希望用户能够在此集合中搜索名称.所以我的提醒想法是在提交搜索按钮时使用:

Meteor.subscribe("testCollection","abc");
Run Code Online (Sandbox Code Playgroud)

但这并没有让我的客户端testCollection更新.我怎样才能做到这一点?我是否必须取消订阅并再次订阅,如果是的话:如何?

javascript mongodb node.js meteor

2
推荐指数
1
解决办法
645
查看次数