2015-03-30 4 views
1

Я хотел бы отменить все значения из шаблона директивы.AngularJS unbind директива без разрушения области

Я обычно делаю это через scope. $ Destroy, но в это конкретное время я не могу уничтожить область, потому что она наследует родительский, и мне это нужно в другом месте.

Я не могу ни связывать один раз, потому что его необходимо обновить.

Возможно ли каким-либо образом полностью отвязать шаблон (т. Е. Сделать его статическим) директивы, не разрушая ее область действия?

ТИА

+0

Пожалуйста, пример. Я не понимаю, хотите ли вы заморозить объект в какое-то время. Вы можете дублировать модель, связанная с привязкой к вашей внутренней копии модели. – Raulucco

+0

Да, это именно то, чего я хочу достичь. В основном проблема в том, что у меня есть какая-то анимация ПОСЛЕ того, что я устанавливаю какое-то значение в области видимости, во время которой я хотел бы сохранить старые данные в директиве (для простых графических целей). – jurito

+0

Я на самом деле думал о дублировании модели, а затем уничтожить область видимости, но поскольку это более чем одно значение, я думал, что может быть самый простой способ «статизировать» элемент dom. – jurito

ответ

0

Хорошим решением может быть вызвать Object.freeze(scope.model) на вашей директиве

+0

Моя директива не имеет области видимости, я бы заморозил мои родительский объект. Я не хочу этого делать. – jurito

+0

так дублируйте объект с угловым расширением ({}, scope.model) и следите за изменениями в дубликате. если затем заморозить свой объект, когда захотите. Можно отменить регистрацию часов после того, как больше не требуется. http://www.bennadel.com/blog/2480-unbinding-watch-listeners-in-angularjs.htm – Raulucco

+0

Разве угловое расширение просто не создаст его копию? Объект «parent» будет изменен, а копия не будет ... – jurito