我想写一个非常简单的指令,它应该转换:
<hello name="StackExchange"></hello>
成:
<hello name="StackExchange"><span ng-click="alert('StackExchange')">Hello!</span></hello>
父作用域将具有alert()
功能。这是我工作的代码:
angular.module('hello', []).directive('hello', function () {
return {
scope: { name: '=' },
restrict: 'E',
template: '<span ng-click="this.$parent.alert(name)">Hello!</span>'
};
});
是否可以在不创建新的隔离范围的情况下执行此操作?
答案 0 :(得分:0)
您可以创建一个可以访问父作用域的新作用域,而不是使用隔离作用域。
angular.module('hello', []).directive('hello', function () {
return {
restrict: 'E',
scope: true,
template: '<span ng-click="alert(name)">Hello!</span>',
link: function(scope, element, attrs) {
scope.alert = function() {
scope.$parent.alert(attrs.name);
};
}
};
});