AngularJS和Polymer双向绑定支持
Web组件使编写封装的视图片段
和独立于任何框架的逻辑
成为可能. 目前支持核心元素(core
)和paper
元素.
例如, 下面的代码把<paper-input>
元素的inputValue
属性和Angular
作用域的myText
属性进行双向绑定
1 | <paper-input ng-model="myText"></paper-input> |
安装
ng-polymer-elements
可以通过 bower
安装:
1 | bower install ng-polymer-elements |
使用
添加脚本到HTML页面
1 | <script type="text/javascript" src="ng-polymer-elements.js"> |
注意:
ng-polymer-elements 要求在启动Angular应用之前加载完成. 如果使用自动启动形式, 比如
<html ng-app="myModule">
,ng-polymer-elements
会自动处理. 如果是手动启动需要保证在polymer-ready
事件之后执行.
1 | window.addEventListener('polymer-ready', function() { angular.bootstrap(wrap(document), ['myModule']); }); |
添加ng-polymer-elements
模块作为angular应用程序依赖模块
1 | angular.module('myModule', ['ng-polymer-elements']); |
下面的组件通过ng-model
支持简单值的双向绑定:
- core-input
- paper-input
- paper-radio-group
- paper-tabs (绑定到被选择Tab的索引)
- paper-checkbox
- paper-toggle-button
- core-overlay (绑定到已打开状态)
- paper-dialog (绑定到已打开状态)
- paper-toast (绑定到已打开状态)
- paper-slider
对于 core-list, ng-model
用于绑定列表数据, ng-tap
用于绑定tap
事件, 同时把事件$event
暴露出来.
1 | <core-list ng-model="arrayData" ng-tap="onTap($event)"> <template> <div>{{text}}</div> </template> </core-list> $scope.arrayData = [{text: 'one'}, {text: 'two'}, {text: 'three'}]; $scope.onTap = function(event) { var tappedItem = event.details.data; }; |