如何将外部函数的值传递回AngularJS指令?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (124)

我正在使用Anguljarjs 1.4x与npm和webpack。我正在尝试将外部函数的值传递回指令。我以前做过类似的事情,但由于某种原因,函数参数不会回到我的控制器,当我点击按钮时,ng-click也没有做任何事情,没有错误,什么都没有。

我确实验证了我到达页面,没有404错误,以及指令,因为我可以在返回语句的Chrome开发工具中设置断点,但我没有到达控制器。我没有像以前那样使用模板,也许我没有为按钮正确接线。页面是现有页面,我将按钮保留,但是将ng-click放在指令中,这可能不正确。有什么想法吗?

这是一些类似的代码:

HTML片段:

<li>
    <my-directive ng-click="myFunc('hello')">
        <md-button class="md-button md-ink-ripple flat-buttons">
            Click Here
        </md-button>
    </my-directive>
</li>

Directive:

export default function myDirective() {
'ngInject';
    return {
        restrict: 'A',
        scope: {
            'myFunc': '&'
        },
        templateUrl: "./myPage.html",
        controller: 'myCtrl'
    };

    function myCtrl($scope) {
        'ngInject';
        console.log("In myCtrl!");
        $scope.myFunc = function(param) {
            console.log("In $scope!");

        }
    }
}
提问于
用户回答回答于

使用expression("&")绑定,定义属性:

<my-directive my-func="parentFn($event)">
</my-directive>

使用$event定义为local 的参数,调用该函数:

export default function myDirective() {
'ngInject';
    return {
        restrict: 'A',
        scope: {
            'myFunc': '&'
        },
        templateUrl: "./myPage.html",
        controller: myCtrl
    };

    function myCtrl($scope) {
        'ngInject';
        console.log("In myCtrl!");
        var answer = $scope.myFunc({$event: "Hello"});
        console.log(answer);
    }
}

所属标签

可能回答问题的人

  • 学生

    3 粉丝476 提问7 回答
  • uncle_light

    5 粉丝518 提问6 回答
  • 最爱开车啦

    8 粉丝503 提问5 回答
  • 骑牛看晨曦

    4 粉丝522 提问5 回答

扫码关注云+社区

领取腾讯云代金券