/ / Utrzymywanie kątowych atrybutów poza moim HTML - angularjs, angularjs-directive

Zachowanie atrybutów kątowych z mojego HTML - angularjs, angularjs-directive

Używam AngularJS w mojej aplikacji internetowej, która nie jest pojedynczą aplikacją strony, ale bardziej tradycyjną aplikacją stron HTML.

Kiedy dodaję moce kątowe do mojego bolusa.net mvc Razor przegląda pliki cshtml (efektywnie pliki html), nie podoba mi się, że dodam więcej znaczników widoku, które są następnie wyprowadzane w HTML. Na przykład lista rozwijana wygląda następująco:

<select ng-model="pagerInfo.filterText" ng-options="g.ID as g.GroupName + " (" + g.InboxCount + ")" for g in groups"

Nie chcę, aby cały szum kątowy był widoczny w znacznikach. Więc co mam zrobić?

Próbowałem go refaktoryzować directives zamiast tego - powyższy fragment może być zastąpiony przez

<select group-filter/>

.. ale to wydaje się powodować problemy, na przykład model wiążący się z ng-model= nie wydaje się działać, gdy jest zdefiniowany w szablonie dyrektywy.Czy to jest zalecany sposób, czy powinienem robić coś innego, aby sobie z tym poradzić?

Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz stworzyć prostą dyrektywę przy użyciu polecenia replace i transclude:

<template-directive></template-directive>

app.directive("templateDirective", [function () {
return {
replace: true,
transclude: true,
restrict: "E",
template: "<select ng-model="selectedItems" multiple ng-options="g.Id as g.Label for g in items" ></select>"
}
}]);