一尘不染

AngularJS指令回调

angularjs

我想通过标签上的参数将调用发送回指令,然后在指令内部适当时调用该方法。例如,当单击按钮时,调用父控制器上的方法。

我有一个简单的问题,它无法正常工作

html文件:

<body ng-controller="ParentController">
    <h1> Method Arguments </h1>
    <h3> open console to view output</h3>
    <hello-world onLoadCallback="myCallback(arg1)"></hello-world>
</body>

javascript文件:

var app = angular.module("app",[]);

function ParentController($scope) {
  $scope.myCallback = function(var1){
    console.log("myCallback", var1);
  }
}
app.directive('helloWorld', function() {
  return {
      restrict: 'AE',
      template: '<h3>Hello World!!</h3>',
      scope:{
            onLoadCallback: '&'
        },
        link: function(scope, element, attrs, dateTimeController) {
            console.log('linked directive, not calling callback')
            scope.onLoadCallback('wtf');

      }
  };
});

阅读 230

收藏
2020-07-04

共1个答案

一尘不染

棘手的棘手角度,在HTML中声明参数时,需要使用蛇形大小写而不是驼峰形匹配。

作品:

<hello-world on-load-callback="myCallback(arg1)"></hello-world>

不起作用:

<hello-world onLoadCallback="myCallback(arg1)"></hello-world>
2020-07-04