【问题标题】:Using '&' scope vars in Angular directives在 Angular 指令中使用“&”范围变量
【发布时间】:2013-03-14 19:37:43
【问题描述】:

来自 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

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

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

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

    而不是 window.alert

    这是一个更新版本:

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

    【讨论】:

    • 谢谢。我想我在想它只是 eval()s 的 &attribute 的内容或其他东西,但显然这是错误的。很容易忘记这些作用域实际上是多么孤立。
    猜你喜欢
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多