2015-02-18 2 views
1

Внутри моего шаблона директивы я есть этотКак я условно можно добавить атрибут в шаблоне в угловом

<span sortable draggable></span>

Теперь я хочу условно добавить sortable и draggale на основе некоторой сферы переменной

Когда я пытаюсь это

<span ng-attr-sortable="false">

это в основном б ecomes

<span sortable="false"></span>, который до сих пор делает его сортировку

Я хочу сортировки быть полностью удалена, если выражение ложно

<span> </span>

+0

Если вы можете основывать свои решения на attrs вашей директивы, а не на переменных области, то это решение может работать для динамического создания вашего шаблона: http://stackoverflow.com/a/20659860/1454888 –

ответ

2

Должен работать с elem.removeAttr('sortable'). Где elem - это элемент jQuery lite, который можно передать как link: function (scope, elem) { ... }, или с помощью elem.find(...) для таргетинга дочернего элемента по имени тега.

Но это то, что вы можете настроить в своем link: function() {...}, а не в правом шаблоне. Вы всегда можете создать свой собственный фильтр для удаления атрибута, который затем можно использовать в шаблоне.

См.: https://docs.angularjs.org/api/ng/function/angular.element (найти removeAttr).

+0

, что removeAttr не за работой. MY шаблон кодирует другую директиву. это может быть так, потому что у меня есть другой круг внутри trmplate, и я пытаюсь удалить атрибут из этой директивы. – user3214546

+0

Это работает, если я помещаю внутри функции компиляции. Если я включил функцию связи, то она не работает. но в компиляции у меня нет области – user3214546

+0

@ user3214546 Возможно, вам нужно перекомпилировать элемент самостоятельно и повторно связать его с областью. – demisx