Widziałem tutaj wiele różnych opisówustawienie domyślnych wartości izolowanego zakresu dyrektywy. Ale jaki jest najlepszy sposób na zrobienie tego i gdzie powinienem to zrobić. Czy jest lepiej w kontrolerze lub w funkcji pre- lub postlink? Czy należy ustawić wartości domyślne na atrybuty w funkcjach łącza lub kompilacji, czy bezpośrednio na zasięgu?
Odpowiedzi:
0 dla odpowiedzi № 1Powinieneś zacząć swoje badania od dokumentacji dyrektyw AngularJS, w szczególności od sekcji o izolowanie zakresu dyrektywy.
Dla siebie wolę używać atrybutu scope
w takiej dyrektywie:
directive("myCustomer", function() {
return {
restrict: "E", // Our directive must be describe as Element <myCustomer>.
scope: {
customerInfo: "=info"
},
link: function(scope, element) {
console.log(scope.customerInfo); // Should display "Naomi" in our example.
}
};
});
A następnie zainicjuj swoją dyrektywę w HTML:
<my-customer info="naomi"></my-customer>
Powiesz dyrektywie, aby zainicjować scope.customerInfo
z wartością atrybutu HTML info
Nie wiem, czy to najlepszy sposób na zainicjowanie dyrektywy, ale myślę, że to prawie czysty sposób.