我创建了一个用于呈现基本HTML的组件,其唯一目的是在用户单击时触发参数化事件。 由于控制器对于所有控制器完全相同,我基于名为componentType的特定参数呈现HTML。 我关心的是如何获得作为绑定的componentType。
'use strict'
var app = angular.module('app');
app.component('htmlElement', {
template: function ($element, $attrs, $log) {
if ($attrs.componentType === 'link') {
return '<a href="#" ng-click="$ctrl.fireEvent();">{{ $ctrl.text }}</a>';
} else if ($attrs.componentType === 'checkbox') {
return '<input type="checkbox" ng-click="$ctrl.fireEvent();">{{ $ctrl.text }}';
}
},
bindings: {
componentType: '<',
text: '<',
rowId: '<',
event: '<'
},
controller: function ($scope) {
$scope.$ctrl.fireEvent = function () {
$scope.$emit($scope.$ctrl.event, { rowId: $scope.$ctrl.rowId });
}
}
});
最后,以下行是我如何调用组件:
<html-element ng-if="cell.componentType" component-type="cell.componentType" text="cell.data.text" event="cell.data.event" row-id="cell.data.rowId"></html-element>
问题是$ attrs.componentType给了我属性值,这是var的名称,所以它对我没有任何帮助。 有人能帮助我吗?