При створенні директиви під час визначення ізоляції області застосування двостороннього зв'язування використовується =
чи існує спосіб, що я можу пов'язувати масив змінних сфер. тобто якщо в моєму контролері є об'єкти, визначені як $scope.one
, $scope.two
і т. д. і може бути будь-яка кількість цих - я хочу, щоб директива мала можливість працювати з налаштовуваною їх кількістю. Як я можу це зробити?
Я не можу цього зробити, оскільки інший контролер, який використовує цю директиву, може мати десять, тому я хочу, щоб він був гнучким:
.directive("example", function () {
return {
scope: {
one: "=",
two: "=",
three: "="
},
...
Відповіді:
1 для відповіді № 1Звичайно, це:
.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;
//...
}
}
}