gpt4 book ai didi

dependency-injection - 什么是值(类型,空)

转载 作者:行者123 更新时间:2023-12-03 03:47:10 24 4
gpt4 key购买 nike

文件angular.dart/lib/directive/module.dart on GitHub
有很多像

// class NgDirectiveModule extends Module {
// NgDirectiveModule() {

value(NgADirective, null); // <--

这个声明的目的是什么。
第二个参数记录为 The [value] is what actually will be injected.我为什么要 null被注入(inject)?

最佳答案

你想要一个 null因为根注入(inject)器中不存在该指令。如果没有这些语句,尝试注入(inject)不存在的指令会导致程序因“未知类型”注入(inject)器错误而崩溃。

当 Angular 遍历 DOM 创建指令时,它们在 DOM 遍历期间创建的子注入(inject)器中可用。例如

<div ng-model="foo" my-directive>...</div>

在 MyDirective 指令中,您可以注入(inject)任何其他指令:

class MyDirective {
MyDirective(NgModel model) {
if (model.viewValue == "party") dance();
}
}

您可以对任何指令执行此操作,例如 ng-click , ng-class ,但是大多数指令没有有用的公共(public)接口(interface)。但是, null值(value)是有用的:

class MyDirective {
MyDirective(NgRepeatDirective repeat) {
if (repeat != null) {
// this element is being repeated
} else {
// this element is not being repeated.
}
}
}

关于dependency-injection - 什么是值(类型,空),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com