【发布时间】:2013-10-17 02:00:32
【问题描述】:
我有 AngularJS 开发的 ngList 指令的代码。我想实现类似的东西,但我不理解部分代码。这是代码
var ngListDirective = function() {
return {
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
var match = /\/(.*)\//.exec(attr.ngList),
separator = match && new RegExp(match[1]) || attr.ngList || ',';
var parse = function(viewValue) {
var list = [];
if (viewValue) {
forEach(viewValue.split(separator), function(value) {
if (value) list.push(trim(value));
});
}
return list;
};
ctrl.$parsers.push(parse);
ctrl.$formatters.push(function(value) {
if (isArray(value)) {
return value.join(', ');
}
return undefined;
});
}
};
};
以下是我不明白的部分:
- function(scope, element, attr, ctrl):ctrl变量。我在哪里可以阅读更多关于此的信息。
- ctrl.$parsers.push(parse);:我在哪里可以了解有关此用法的更多信息
- ctrl.$formatters.push(function(value) {:我需要理解这一点,因为我将尝试实现类似的东西
- require: 'ngModel':为什么需要 ngModel
【问题讨论】:
-
@TusharGupta 该链接没有回答任何问题。
-
@JimSchubert 这就是为什么评论没有作为答案发布。仅供参考。
标签: javascript angularjs angularjs-directive