Opracowuję widget, w którym chcę renderować niektóre wiadomości/tekst jeden po drugim. Chcę zmienić szablon wiadomości na podstawie typu wiadomości.Dyrektywy kątowe - jak wybrać szablon na podstawie wartości atrybutu?
moja obecna konfiguracja dyrektywy brzmi następująco
directive('cusMsgText', function(){
return {
restrict: 'E',
template:function(elements, attrs){
return '<div></div>';
},
link: function($scope, iElm, iAttrs, controller) {
//add children to iElm based on msg values in $scope
}
};
});
Dyrektywa służy następująco
<div ng-repeat="(key, value) in chatUser.msg">
<data-cus-msg-text msg="value.type"></data-cus-msg-text>
</div>
Teraz moje pytanie są -:
Czy to możliwe, aby powrócić jeden wielu ciągów (szablonów) z samej funkcji szablonowej od wartość atrybutu
msg
. Próbowałem uzyskać dostęp doattrs.msg
w funkcji szablonu i to returnvalue.type
.Jeśli nie to, Czy to dobrze manipulować szablon pod
linker
lub muszę przenieść go docompile
funkcji?
nie jestem w stanie uzyskać dostęp do rzeczywistej wartości dostarczyć w atrybutach dyrektyw. pod wartością funkcji szablonu value.type jest ciągiem znaków. –
W podanym przykładzie Twoja dyrektywa ma atrybut 'msg'. Jeśli rozumiem, przekazujesz ten typ do dyrektywy poprzez ten atrybut. Możesz "przełączyć" na tę wartość, nie widzę problemu. Ponadto, co masz na myśli przez "funkcję szablonu"? Funkcja "Link"? – link