javascript - Adición de múltiples opciones de ''requerimiento'' para la directiva angular
angularjs angularjs-directive (1)
Por lo general, en las directivas, uso require: ''ngModel''
si quiero pasarle el alcance. Esto funciona bien. Pero ahora estoy creando una directiva que crea 5 elementos HTML diferentes, cada uno con diferentes ngModels que se pasan desde el padre. Los ngmodels que deben pasarse como atributo son ngModel1, ngModel2, ngModel3, ngModel4, ngModel5
. ¿Cómo agrego múltiples opciones en la condición require
dentro de la directiva?
Probé estos y no funciona:
require: [''ngModel1'', ''ngModel2'', ''ngModel3'', ''ngModel4'', ''ngModel5''],
y
require: {''ngModel1'', ''ngModel2'', ''ngModel3'', ''ngModel4'', ''ngModel5''},
y
require: ''ngModel1'', ''ngModel2'', ''ngModel3'', ''ngModel4'', ''ngModel5'',
y
require: ''ngModel1, ngModel2, ngModel3, ngModel4, ngModel5''},
¿Cómo agrego múltiples opciones de requerimiento?
EDITAR:
Código HTML:
<div get-vehicles-checkbox
cars-ng-model="formData.cars"
bikes-ng-model="formData.bikes"
trucks-ng-model="formData.trucks"
van-ng-model="formData.van"
bus-ng-model="formData.bus"
></div>
Directiva:
app.directive(''getVehiclesCheckbox'', function($compile) {
return {
restrict: ''A'',
replace:true,
// require: ?
scope: {
carsNgModel: ''='',
bikesNgModel: ''='',
trucksNgModel: ''='',
vanNgModel: ''='',
busNgModel: ''=''
},
controller: ''SomeController'',
link: function(scope, element, attrs, carsNgModel, bikesNgModel, trucksNgModel, vanNgModel, busNgModel) {
scope.carsNgModel = {},
scope.bikesNgModel = {},
scope.trucksNgModel = {},
scope.vanNgModel = {},
scope.busNgModel = {}
var html = ''<span ng-repeat="car in cars">'' +
''<input type="checkbox" ng-model="carsNgModel[car.code]"> {{ car.number }} {{ car.description }}'' +
''</span>'' +
''<span ng-repeat="bike in bikes">'' +
''<input type="checkbox" ng-model="bikesNgModel[bike.code]"> {{ bike.number }} {{ bike.description }}'' +
''</span>'';
//.... etc.. etc.....
// COMPILE HTML
//... .... ...
}
}
});
app.directive(''myDirective'', function() {
return {
restrict: "A",
require:[''^parentDirective'', ''^ngModel''],
link: function ($scope, $element, $attrs, controllersArr) {
// parentDirective controller
controllersArr[0].someMethodCall();
// ngModel controller
controllersArr[1].$setViewValue();
}
}
});