【发布时间】:2014-07-03 04:14:56
【问题描述】:
我查看了许多将 Angular-JS 范围数据绑定到 Polymer 组件的答案。 (Use Angular-Bind-PolymerAnother,And a third)。如果聚合物成分真的只是 DOM,这似乎不应该这么难。 (请注意,我使用的是 Chrome beta (36))。
我尝试了 Angular-Bind-Polymer 建议,但没有成功。我真正的兴趣是扩展 ngModel 以使用 Polymer,以便我可以使用 Polymer 复选框、单选按钮等。例如,我尝试让 paper-checkbox 工作,所以我尝试了以下方法,认为它应该可以工作:
var ngPaper = angular.module('ng-paper', []);
ngPaper.directive('paper-checkbox', function() {
console.log("Processing directive");
return {
restrict: 'E',
require: '?ngModel',
link: function(scope, element, attr, ctrl) {
console.log("Running linker");
element.on('click', function() {
scope.$apply(function() {
ctrl.$setViewValue(element[0].checked);
});
});
ctrl.$render = function() {
element[0].checked = ctrl.$viewValue;
};
ctrl.$isEmpty = function(value) {
return value != true;
};
ctrl.$formatters.push(function(value) {
return value === true;
});
ctrl.$parsers.push(function(value) {
return value ? true : false;
});
}
};
});
但是没有。
然后我尝试使用 angular-bind-polymer 将纸张复选框上的选中值绑定到模型属性,但没有任何成功。
我觉得如果我能弄清楚如何让其中一个表单控制元素工作,那么其他的应该很快就会排成一行。是否有人对如何执行此操作有更好的想法或解释为什么我写的指令没有被拾取并应用于纸质复选框?
【问题讨论】: