J'ai une directive qui crée un champ de saisie. J'ai besoin de définir l'attribut ng-model de ce champ d'entrée sur la valeur d'une variable $ rootScope. La raison derrière cela est que je veux que le champ de saisie soit dans la mise en page et se lie à différents modèles en fonction de la page chargée. J'ai pensé définir cette variable globale dans chaque contrôleur et y accéder dans la directive.
ATM, la variable est codée en dur
App.run(function($rootScope){
$rootScope.mymodel = 'search.name';
})
Et la directive
Directives.directive('inputFilter', function(){
return{
restrict: 'E',
replace:true,
controller: function($scope, $rootScope){
console.log($scope.mymodel);
console.log($rootScope.mymodel)
},
template: '<input class="filter" type="text" ng-model="mymodel" placeholder="Nach filtern">'
}
});
Il est rendu comme
<input class="filter ng-pristine ng-valid" type="text" ng-model="mymodel" placeholder="Filter">
et le texte à l'intérieur du champ de saisie est la valeur de la variable mymodel. Le console.log montre
search.name
search.name
Quelqu'un pourrait-il nous éclairer sur cette question?
Je pense que tu veux
template: '<input class="filter" type="text" ng-model="'
+ $rootScope.mymodel + '" placeholder="Nach filtern">'
Violon .
Notez que vous devrez injecter $rootScope
dans votre directive:
Directives.directive('inputFilter', function($rootScope) {