使用'&' Angular指令中的范围变量

时间:2013-03-14 19:37:43

标签: angularjs angularjs-directive

来自Angular docs

  

&安培;或& attr - 提供在父作用域的上下文中执行表达式的方法。如果未指定attr名称,则假定属性名称与本地名称相同。范围的给定和小部件定义:{localFn:'& myAttr'},然后隔离范围属性localFn将指向count = count + value表达式的函数包装。

这给我的印象是这样的事情应该是可能的,但它不起作用。我做错了什么?

myApp.directive('test', function () {
return {
    restrict: 'E',
    replace: true,
    template: '<div><input type="button" ng-click="thefunc()" value="{{title}}"/></div>',
    scope: {
        title: '@',
        thefunc: '&'
    }
};});

HTML:

<test thefunc="alert('Here you go.')" title="Click me for a popup"/>

Fiddle

1 个答案:

答案 0 :(得分:3)

Angular正在寻找控制器范围的“警报” -

$scope.alert = function(){..}

而不是window.alert

以下是更新版本:

http://jsfiddle.net/3CxtZ/4/