如何使用可选初始化进行表达式“&”绑定

How to make expression '&'-binding with optional initialization

我想初始化一个回调 &-属性 绑定到 return 为真(如果没有传递回调)的函数。像这样:

export const DatepickerInputComponent = {
    bindings: {
        validityCheck: '&',
    },
    templateUrl: './datepicker-input.component.html',
    controller: class DatepickerInputController implements ng.IController {
        validityCheck: Function = (args) => true; // <- doesn't work
        validate(value: Date): void {
            // some validations
            return this.validityCheck({ selection: value });
        }
    },
}

从未定义 validityCheck 属性 的组件调用 validate() 时,它将 return 未定义。关于如何让它发挥作用有什么想法吗?

正如术语binding所暗示的,它必须从父组件传入。

<date-picker-input-component
  format="some string"
  mode="some other string"
  validity-check="someFunctionFromParentController">
</date-picker-input-component>

并从你的控制器中删除这部分

validityCheck: Function = (args) => { return true; }; // <- doesn't work

假设 someFunctionFromParentController 是在您的父控制器上定义的

尝试将绑定设置为可选:

bindings: {
    validityCheck: '&?'
},