繁体   English   中英

Angular Directives 2向绑定和刷新

Angular Directives 2 way binding & refresh

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

假设您有一个页面,其中有一个用于客户搜索的指令(第一指令)。 您进行搜索,然后从Web服务器获取客户列表。

现在,在上面的指令中,您有了第二个指令,我们将其称为customerRes ,它为customerRes显示一些信息(这就像在站点中许多地方重复使用的小窗口小部件一样)。 在第二个指令的隔离范围内,我有一个称为results的属性,我将它与返回的结果绑定在一起,例如

第一个指令的声明如

<customer-res results="webserverResult">

customerRes指令中,我有一个类似

<div ng-repeat="x in results>
{{name}} {{bla}}  ... bla bla
</div>

现在,每次用户单击父指令时,它将向Web服务器发出请求,并可能返回不同的结果。

问题:角度实际上是在监视自身,即与隔离范围绑定的值在指令之外发生了变化,还是我需要做一些事情以确保其无效?

此外,即使您在结果返回之前加载页面,但一旦返回结果,它们是否不应该更新页面元素?

1 个回复

一种很酷的方法是您自己找到自己的地方。 别误会我的意思,但是我个人在迈出第一步时就做到了。 帮助您更深入地了解框架,而不是阅读文档并更容易忘记。

您可以随时添加

scope.$watch('myVariable', function(value) { 
  console.log('myVariable changed to:', value);
})

转到您的指令,并查看其值何时更改。

即使在整页重新加载时,双向bindig也像超级按钮一样工作。 没有指令的JS代码,就无法更精确。 但是,当使用隔离范围时,可能需要使用指令

scope: {
   myVariable: '='
}
<my-directive my-variable="results.entries"></my-directive>

但请记住,重新加载页面时,角度从零重新开始。 对于每个指令而言,其链接功能在幕后都会被调用一次。 关键字是angular的digest cycle

希望我可以帮助您(稍微广泛一点)。

2 rc.5中的Angular2 PLATFORM_DIRECTIVES

我刚刚从rc.4迁移到rc.5。 但是,我为整个应用定义的自定义指令不再被认可。 我以前在我的app.component中有: 现在有了NgModule我有: 尽管在我的应用中,CustomDirective1和CustomDirective2不再被识别。 我还有什么需 ...

3 Angular 4属性绑定刷新

我已经使用Angular4- JsonEditor创建了一个JSON查看器和编辑器。 应用程序加载时会读取本地json文件并填充以供查看。 而且工作正常 现在我有一个输入框和btn。 我将在输入框中输入webservice网址,并获取json数据作为响应。 单击该按钮时,正在获得预 ...

2017-12-01 11:39:28 1 156   angular
7 Angular-nvd3-directives根据图表的宽度调整图表的高度

我正在尝试使用angular-nvd3指令创建折线图。 为了使它看起来很好,我需要将height属性设置为“250”,这看起来很好的大中型屏幕。 但是,在小屏幕上它会看起来很奇怪,因为高度是固定的,宽度值将比高度小得多。 如果不将height属性设置为值,则它将太宽。 我希望y轴的高度与 ...

9 Angular 2.0.0-rc.2:如何迁移PLATFORM_DIRECTIVES

https://github.com/angular/angular/blob/master/CHANGELOG.md上的更改日志提到: PLATFORM_PIPES和PLATFORM_DIRECTIVES现在是CompilerConfig上的字段。 与其提供对这些标记的绑定,不如提 ...

2016-06-18 12:34:10 1 304   angular
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM