我正在使用AngularJS 1.7,并将代码基于以下Todd Motto样式指南:https://github.com/toddmotto/angularjs-styleguide
我想通过绑定将函数从父组件传递给子组件,如果我用console.log记录了函数,但我似乎无法在控制器上调用它。
这是我的代码:
parent.html
<child functionToRun="$ctrl.print(message)"></child>
parentController.js
export class ParentController {
contructor($log) {
'ngInject';
this.$log = $log;
}
print(message) {
console.log(message);
}
}
child.component.js
import { ChildController } from './child.controller';
import templateUrl from './child.html';
export const ChildComponent = {
templateUrl,
controller: ChildController,
bindings: {
functionToRun: '&'
}
};
childController.js
export class ChildController {
constructor() {
'ngInject';
}
$onInit() {
this.functionToRun.call(this, 'hello');
}
}
我已经搜索了类似的问题,但找不到任何问题,对不起,如果已经有一个问题。
这可能吗? (我想在控制器上调用它,而不是在HTML- $ scope上调用它)
如果可以,您能告诉我我的错误吗? 谢谢,谢谢
答案 0 :(得分:0)
使用连字符传递函数,如下所示:
<child function-to-run="$ctrl.print(message)"></child>
然后使用一个对象调用该函数:
this.functionToRun({ message: 'hello' });