Angular - это не js, это мерзость со своей говнопарадигмой.
|
ibolgenos,
Да, там надо ковыряться. Тем более что у вас там не просто angular, а angular с requirejs, и там могут быть применены нестандартные решения (хотя скрещивание ангулара с чем-либо уже нестандартное решение) |
Я взял код примера («Add Some Control» angularjs.org/#add-some-control) с сайта AngularJS. Я хочу вызвать метод addTodo() используя консоль Chrome, но не знаю как. Если ввести консоль addTodo() или scope$.addTodo(), то получу сообщение «ReferenceError: addTodo is not defined». Поскольку я не программирую на JS и уж тем более не знаком с AngularJS, не могли бы вы сказать, что нужно ввести в консоль?
Вообще возможно ли вызвать метод в AngularJS со стороны? Или все методы вызвываються только внутри самого AngularJS? ![]() |
Ничего) Ангулар не делает глобальных объектов (точнее делает, но добраться через них ОЧЕНЬ сложно). Он, как и любой фреймворк, рассчитан на управление его объектами через его апи. Из консоли вы этого не сделаете без костылей.
|
А вы можете добраться до функции addTodo() или сделать так, чтобы она стала доступна? Это вроде маленький пример с сайта AngularJS.
|
Вот тут сказали как вызвать функцию из примера - https://groups.google.com/forum/#!to...ar/6yoDLdYVRjc
Теперь осталось разобраться в своем...) |
ibolgenos,
Вы не понимаете. Так делать НЕ НАДО. Разбирайтесь с фреймворком и делайте правильно. Если это вам понадобилось - значит что-то у вас не правильно сделано. Самый простой способ сделать то что вы хотите - в контроллере после .controller('TodoController', ['$scope', function($scope) { написать window.$scope = $scope; тогда вызов addTodo(): $scope.addTodo(); Но это костыльный вызов. И после каждого такого вызова вы можете ловить неожиданные глюки, часть из которых может исправить вызов $scope.$apply(); После каждого такого костыля. Лучше изучить фреймворк чем наполнять его костылями. |
Цитата:
Например, страницей будет являться главная страница AngularJS, на которой находиться пример, в котором при нажатии на кнопку появляется новый чекбокс. Так вот, я хочу чтобы чекбокс добавлялся и при нажатии на кнопку моего приложения. Как это сделать? Есть другие решения? |
Эмулируйте действия пользователем (например как с кликом) или взаимодействуйте стейтами (через урл).
|
Разве эмулирование будет лучше? Особенно когда мне нужно не только кликнуть, но и заполнить некоторые поля.
Можете рассказать подробнее про "стейты", что за зверь? И если можно то попробуйте с помощью "стейта" кликнуть по кнопке, которая на официальном сайте AngularJS :) |
Часовой пояс GMT +3, время: 02:42. |