javascript - 通过iframe访问时Angular js plunkr无法正常工作
问题描述
我无法在下面的 plunkr 中访问模型的模型,请在下面找到 plunkr。请帮助。
<div ng-controller="PersonCtrl">
<h2>Teens - using external HTML file as template</h2>
<iframe src="teen-external.html"></iframe>
</div>
这是任何参考的Plunkr。
解决方案
您的示例中有几个问题,首先将 html 源代码加载到 iframe 中,它将其加载为简单的 html 并将其呈现在 iframe 内,而无需对其进行角度解析以完成所有的 Mastache 插值。
要纠正这个问题,因为您已经创建了一个渲染指令,teen-external.html
这将允许 angular 解析所述 html 并插入相关字段。为此,只需使用index.html
文件中的指令即可。
<teen-internal> </teen-internal>
或者
<div teen-internal></div>
另一个问题是您试图访问在父母内部定义的变量/模型$scope
,如果不通过$scope.$parent
. 即使您使用它来执行此操作,$parent
它也被认为是一种非常糟糕的做法。为此,更优雅的角度提供了一种从父级到子级的模型/变量传递,为此您需要更改指令代码index.html
和teensInternal
指令代码。
在你的index.html
或
<div teens-internal teens="teens"></div>
这会将'steens
上的属性设置为来自 parent's( ) 。现在在您的指令代码中,您必须定义绑定对属性的工作方式,在这里您可以将其定义为只读的也称为单向绑定(内部完成的修改不会反映在父控制器内部)或可写的双向绑定(两者和共享同一个对象,所以修改反映在双方)做这个改变teensInternal
$scope
teens
PersonCtrl
$scope
teens
@
teensInternal
=
teensInternal
PersonCtrl
scope: {
},
至
scope: {
teens: '=' // or "@" for one way binding
},
这告诉指令通过的任何东西都<teens-internal teens="teens"></teens-internal>
可以在指令的.teens
="<model's name>"
$scope
plunkr:plunkr 源码
推荐阅读
- python - 如何在python中搜索和访问子元素和结构
- excel - 运行时错误 91 与 Excel VBA 中的 HTML 文档
- apache-calcite - Calcite:我们可以重写优化的 RelNode 吗?
- c# - 如何拆分字符串并删除每个第 n 个元素?
- transactions - 向客户端公开 DynamoDb 乐观锁定版本以防止更高级别的竞争条件是否可能并且是一种好习惯?
- paypal - 在处理 3 中使用 Paypal Here 信用卡扫描仪播放声音
- ecmascript-6 - 我可以将纯 javascript es6 与 ASP、NET CORE MVC 多页应用程序一起使用吗?
- excel - 编译错误:过程太大需要帮助
- javascript - discord.js v12 事件处理程序
- amazon-dynamodb - Dynamodb 流记录中的近似创建日期时间