Mam potrzebę dziedziczenia zakresu od kontrolera nadrzędnego w dyrektywie. Niekoniecznie chcę opuścić zakres: fałsz. Niekoniecznie chcę też używać izolowanego zakresu, ponieważ wymaga to dużo pracy, aby uzyskać wartości, o które dbam, aby linki były prawidłowo (myślę, że wiele wartości w kontrolerze nadrzędnym).Czy możliwe jest zaktualizowanie zakresu macierzystego z dyrektywy kątowej o zakresie: prawda?
Czy ma sens stosowanie scope:true
w mojej dyrektywie, jeśli chcę zaktualizować zakres nadrzędny?
<div ng-controller="MyCtrl">
Hello, {{name}}!
<my-directive></my-directive>
</div>
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.name = 'Dave';
}
myApp.directive('myDirective', function() {
return {
scope: true,
restrict: 'EA',
link: function(scope, elem, attrs) {
scope.updateName = function(newName) {
console.log('newName is: ' + newName);
scope.name = newName;
}
},
template: '<input ng-model="updatedName" placeholder="new name value"> <button ng-click="updateName(updatedName)">Update</button>'
}
})
Proszę zapoznać się z fiddle
rozumienie tylko tej części, a nie to, że zakresy działają bardziej ogólnie, to nie jest dobry pomysł. – Ven
Tego właśnie szukałem. To jest ten kawałek, który skleił to (lub dużą jego część) razem. Dzięki, Mark, za szczegółową odpowiedź, jest naprawdę świetny. – binarygiant
Przepraszam za wykopanie starego wątku, ale w materiale-kątowym można użyć na przykład dyrektywy mdSelect w następujący sposób:
gpothier