混合聚合物1.0和Angular 1.x
Mixing Polymer 1.0 and Angular 1.x
我有一个Angular 1。x应用程序,我正试图在Polymer 1.0的帮助下更新材料设计。我必须声明,我只是使用纸张元素作为正常的构建块,我没有编写任何自定义的聚合物代码。
到目前为止,我遇到了2个问题,都处理嵌套的聚合物元素,所以我想解决方案将是相同的或至少非常相似。
问题1
在纸质项目上使用ng-repeat
。
HTML代码(使用Angular模板语法)
<paper-item data-ng-repeat="event in events">
<paper-item-body two-line>
<div>{{event.title}}</div>
<div secondary>{{event.description}}</div>
</paper-item-body>
</paper-item>
以下代码不能运行,因为它会产生以下错误:
TypeError: Cannot read property 'childNodes' of undefined
at g (angular.js:7531)
at g (angular.js:7531)
at N (angular.js:8127)
at g (angular.js:7527)
at angular.js:7402
at $get.h (angular.js:7546)
at m (angular.js:8159)
at angular.js:27052
at Object.fn (angular.js:15474)
at m.$get.m.$digest (angular.js:15609)
然而,如果我使用下面的代码,代码确实运行没有错误:
<div data-ng-repeat="event in events">
<paper-item-body two-line>
<div>{{event.title}}</div>
<div secondary>{{event.description}}</div>
</paper-item-body>
</div>
注意,我只改变了根元素(从paper-item
到div
)。
问题2
试图用谷歌地图在地图上显示一个标记。地图居中,但没有标记。
HTML代码(使用Angular模板语法)
<google-map latitude="{{event.y_wgs}}" longitude="{{event.x_wgs}}">
<google-map-marker latitude="{{event.y_wgs}}" longitude="{{event.x_wgs}}"></google-map-marker>
</google-map>
HTML输出(Angular在运行时编译的):
<google-map latitude="12.345" longitude="12.345">
<google-map-marker latitude="NaN" longitude="NaN"></google-map-marker>
</google-map>
注意内部标记google-map-marker
将NaN
作为纬度和经度,而外部google-map
按预期工作。这就解释了为什么地图居中可以,但没有标记。
TL;博士
嵌套聚合物元素和使用Angular的双胡子语法可能会导致冲突,因为内部的聚合物元素将其视为聚合物代码,而不是Angular代码。
有什么办法可以解决这个问题吗?如果你的目标是使用Material Design(这对于基于web的应用归结为使用正确的主题),我刚刚看到了Angular Material (https://material.angularjs.org/latest/#/)。也许那会有帮助?
第一个问题可以通过使用
来解决window.Polymer = {dom: 'shadow'};
如Justin Fagnani在评论中所述,与聚合物文档中的语法略有不同,否则在Firefox/IE中将无法识别,请参阅https://github.com/Polymer/polymer/issues/1844
但是,我想这意味着您不会得到任何性能改进,这是由shady DOM引入的。
- Angular JS IE9 Hashbang url rewriting
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用angular重定向到html页面
- angular.js没有'无法在PhoneGap中处理视图标记
- Javascript(Angular)从一个对象数组到第二个数组查找值
- angular 1.5应用程序中的导航栏
- angular的下拉菜单
- Angular只从数组中获取所需的数据
- 如何将不可变的js导入angular 2(alpha)
- 用于搜索的聚合物嵌套绑定
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将JSON对象传递给angular指令
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- Angular:更新一次性绑定的数据
- 同步调用,直到用户通过angular验证为访问者
- 有没有一种聚合物等效于Angular;s”;ng被禁用”;
- 混合聚合物1.0和Angular 1.x