2014-05-16 5 views
0

Я пытаюсь понять, что делает угловой сервис $ parse. Я прочитал официальную документацию по адресу https://docs.angularjs.org/api/ng/service/ $ parse, но это не очень помогает. Поиск в Интернете не принес каких-либо хороших примеров.

Любая помощь будет оценена по достоинству.

ответ

0

$ parse берет строку и возвращает вам функцию. Ниже приведен простой пример этого в действии

http://plnkr.co/edit/nicdbwVL2ZZbljZy2Z9S

+0

Спасибо, что ваш пример помогает .. Один вопрос через .. зачем пропускать область действия функции fn (scope, {}) и зачем использовать scope.apply() в конце? – runtimeZero

+0

Событие возникло вне углового, поэтому вам нужно, чтобы угловой и функция знали контекст. –

1

я собирался объяснить, но не могу сделать это лучше, чем this post

"$ синтаксического анализа принимает выражение, и возвращает вам функцию. При вызове возвращаемых функций с контекстом в качестве первого аргумента. Это будет выполнить выражение с данным контекстом "

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

1

Цель $parse от моего POV, чтобы позволить нам оценить «свойство» из данного $scope. Результат вызова $parse является "собственностью", например:

мой контроллер

$scope.author.name = "Hello World"; 

где-то под тем же контроллером:

var property = $parse("author.name"); 

собственности Getter: property($scope); в этом случай оценивается в той же области.

Property Setter: property.assign($scope,'Felipe'); присваивает новое имя автору.

$scope дайте нам контекст, где можно оценить или найти «собственность».

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

Смежные вопросы