我知道一种方法,那就是使用范围。还有哪些其他方法可以做到这一点?
这是自定义指令。在这里,我创建了一些自定义属性,这些属性通过作用域将数据从 HTML 传递到指令。
module.directive('createFormButtons', [function () {
return {
restrict: 'EA',
scope: { isUpdate: '=isUpdate', saveForm: '=saveForm', saveData: '=saveData', isChange: '=isChange', isPrint: '=isPrint', isTabIndex: '=isTabIndex' },
templateUrl: 'components/common/createFormButtons.html',
link: function ($scope, element, attrs) {
$scope.printpages = false;
$scope.save = function () {
$scope.$emit('save');
};
$scope.update = function () {
$scope.$emit('update');
};
$scope.refresh = function () {
$scope.$emit('refresh');
};
$scope.newForm = function () {
$scope.$emit('newForm');
};
$scope.print = function () {
$scope.printpages = !$scope.printpages;
};
$scope.printing = function (v) {
event.stopPropagation();
if (v === 5)
$scope.printpages = !$scope.printpages;
else
$scope.$emit('print', v);
};
}
};
}]);
这就是我在 HTML 上的调用方式。
<create-form-buttons style="height:400px;" is-print="true" is-update="isUpdate" is-change="isChange" save-form="inwardForm" save-data="inward">
</create-form-buttons>
最佳答案
- 您可以
$parse
attrs
对象上的内容。 - 您可以从上方
$broadcast
数据并使用$scope.$on()
在指令中监听它 - 您可以将数据存储在 Angular 服务中并将其注入(inject)到您的指令中。
关于javascript - AngularJS 有多少种方法可以将数据传递给范围以外的指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42371006/