При создании директивы при определении области выделения с помощью двухсторонней привязки с использованием =
есть ли способ привязать массив переменных области. то есть. если в моем контроллере у меня есть объекты, определенные как $scope.one
, $scope.two
и т.д., и может быть любое число из них - я хочу, чтобы директива могла обрабатывать настраиваемое количество из них. Как я мог это сделать?
Я не могу этого сделать, поскольку другой контроллер, который использует директиву, может иметь десять, поэтому я хочу, чтобы он был гибким:
.directive("example", function () {
return {
scope: {
one: "=",
two: "=",
three: "="
},
...
Конечно, это:
.directive('example', function() {
return {
scope: {
config: '='
},
link: function(scope) {
var firstOption = scope.config[0];
var secondOption = scope.config[1];
//...
}
}
}
Параметры массива должны храниться с фиксированным индексом, поэтому он будет менее читабельным, чем передача объекта конфигурации
.directive('example', function() {
return {
scope: {
config: '='
},
link: function(scope) {
var firstOption = scope.config.firstOption;
var secondOption = scope.config.secondOption;
//...
}
}
}
attrs
(атрибуты), но вы должны передать объект с таким количеством свойств, сколько хотите, в область действия директивы. Это предпочтительный метод для обработки