Скрипты jquery в проекте angularjs

Я работаю над проектом angularjs, который я создал с помощью генератора углов yeoman.

У меня есть функция jQuery, которую мне нужно использовать в большинстве моих представлений html. Возможное решение - добавить эту функцию, например, в файл script.js и добавить этот файл в качестве ссылки в представления html, для которых требуется эта функция. Однако я не считаю это решение хорошим.

Когда yeoman генерирует проект angularjs, в своем файле index.html он добавляет раздел

<!-- build:js({.tmp,app}) scripts/scripts.js -->

в этом разделе добавляются различные файлы сценариев, поскольку, как я думаю, при сборке эти файлы будут объединены в один файл scripts / scripts.js.

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

Что я могу сделать, чтобы решить эту проблему?


person EddyG    schedule 21.03.2017    source источник


Ответы (1)


Манипуляции с DOM выполняются с помощью директив в angularjs, вам нужно будет проверить документацию: https://docs.angularjs.org/guide/directive

Если вы не манипулируете DOM, вы можете создать службу, которую можно внедрить в любой контроллер. Документация по службам: https://docs.angularjs.org/guide/services

оттуда вы можете назначить функцию в контроллере области, к которой можно получить доступ в представлении. например

$scope.MyFunction = function(){
    // Code goes here
}

вы можете вызвать функцию в HTML как

<div ng-click="MyFunction()"></div>
person joegod86    schedule 21.03.2017
comment
Уважаемый, похоже, вы не поняли вопрос. Вы рассказываете мне об основах angularjs, которые я уже знаю. Я спрашиваю о сложной вещи, касающейся тегов сценариев, содержащих функции jQuery, а не содержимое angularjs. - person EddyG; 22.03.2017
comment
По моему опыту, функции jquery не будут работать так с angular. вам нужно использовать директиву или службу. - person joegod86; 22.03.2017
comment
as в скриптах не прописаны как часть модуля angular - person joegod86; 22.03.2017