Mam dyrektywę, która tworzy pole wejściowe. Należy ustawić atrybut ng-model tego pola wejściowego na wartość zmiennej $ rootScope . Powodem tego jest to, że chcę, aby pole wejściowe było w układzie i wiązało się z różnymi modelami w zależności od załadowanej strony. Pomyślałem, że ustawię tę zmienną globalną w każdym kontrolerze i uzyskam dostęp do niej w dyrektywie.
ATM zmienna jest zakodowana
App.run(function($rootScope){
$rootScope.mymodel = 'search.name';
})
i dyrektywa
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">'
}
});
Robi renderowany jako
<input class="filter ng-pristine ng-valid" type="text" ng-model="mymodel" placeholder="Filter">
a tekst wewnątrz pola wejściowego jest wartość mymodel zmienna. Konsola.log pokazuje
search.name
search.name
Czy ktoś może rzucić trochę światła na ten problem?
może również rzucić okiem na przedstawieniu $ korzenie w szablonie, który posiada odniesienie do $ rootScope w dyrektywach, które mają swój własny zakres. Zobacz - http://stackoverflow.com/questions/22216441/what-is-the-difference-between-scope-roots-and-rootscope – cchamberlain