我正在努力学习新的ng-book。有关过滤器的章节包含有关使用以下代码定义解析器的部分:
angular.module('myApp')
.directive('oneToTen', function() {
return {
require: '?ngModel';
我第一次看到'?ngModel'语法,而Angular API文档没有提供太多帮助。这种语法意味着什么?
谢谢!
答案 0 :(得分:5)
?
是可选指令,^
是父指令
http://docs.angularjs.org/api/ng.$compile
(no prefix) - Locate the required controller on the current element. Throw an error if not found.
? - Attempt to locate the required controller or pass null to the link fn if not found.
^ - Locate the required controller by searching the element's parents. Throw an error if not found.
?^ - Attempt to locate the required controller by searching the element's parents or pass null to the link fn if not found.
答案 1 :(得分:4)
必需可以解释为:
[?][^][directiveName]
。
它用于指定应该使用哪个指令控制器(“继承自”)。因此,例如,指令<column-item>
需要找到父控制器<crtl-grid>
。有几个符号可以与此属性一起使用,也可以组合使用:
^ =它表示寻找DOM以寻找指令的角度。
? =它表示该指令是可选的角度,如果未找到,则angular不会抛出异常。
所以?ngModel 表示需要与此指令一起声明ngModel。