如何将数据从隔离作用域传递到父作用域?

5

我对使用AngularJS还比较新,我想做的是创建一个指令并从父作用域中调用函数。我已经成功实现了这一点,但我似乎无法弄清楚如何通过表达式从隔离作用域传递数据到父作用域。在Angular开发人员指南中对此的解释有点令人困惑。

该指令:

app.directive('myDir', function() {
    return {
        restrict: 'E',
        template: '<div ng-click="parentFunc(someValue)"><div>', 
        scope: {
           parentProp: '=property',
           parentFunc: '&func'
        },
        link: function(scope, element, attrs) {

        }
    }
});

标记语言:

标记:

<my-dir prop="foo" func="bar(someValue)"></my-dir>

控制器:
app.controller('TstCtrl', function($scope) {
    $scope.foo = 'test';
    $scope.bar = function(value) {
       console.log(value);
    };
});

感谢您提前的帮助!
1个回答

11

可能还有其他方法来解决这个问题,但请参见此示例,在其中您将通过使用与传递给func属性相同的参数名称将对象传递给函数。

    link: function(scope, element, attrs) {
        scope.parentFunc({someValue:'testing'});            
    }

因此,在这种情况下,由于您在func属性中调用了bar(someValue),因此您希望在链接函数中传递一个具有someValue的对象。您调用parentFunc,因为这就是与您隔离作用域中的&func链接的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接