Angular 指令支持依赖注入,那么它们为什么需要控制器呢?
Angular directives support dependency injection, so why do they need controllers?
我一直觉得需要 Angular 指令控制器,这样您就可以 'hook up' 指令到您的 domain/business 逻辑。
现在我发现您可以直接在指令中执行 DI。我的问题是为什么 Angular 团队在不需要时也让您在指令上使用控制器?
首先,您可以使用 require
option 访问 parent 的控制器,但不能访问它们的指令代码。当您有多个指令合作实现某些目标时,这非常有价值。
此外,properly-built 控制器可以 unit-tested 独立于附加到元素(你必须这样做才能测试完整的指令),所以它更方便在某些情况下。
我一直觉得需要 Angular 指令控制器,这样您就可以 'hook up' 指令到您的 domain/business 逻辑。
现在我发现您可以直接在指令中执行 DI。我的问题是为什么 Angular 团队在不需要时也让您在指令上使用控制器?
首先,您可以使用 require
option 访问 parent 的控制器,但不能访问它们的指令代码。当您有多个指令合作实现某些目标时,这非常有价值。
此外,properly-built 控制器可以 unit-tested 独立于附加到元素(你必须这样做才能测试完整的指令),所以它更方便在某些情况下。