Angularjs Как вы вызываете метод контроллера внутри функции javascript, определенной в файле шаблона html?
Я прочитал эту ссылку:Доступ к AngularJS извне функции js и я попытался получить доступ к контроллеру, но я неt настроить мой index.html как пример fiddlejs.
Я настроил свое приложение на использование $ routeProvider и настроил простой сервис для обмена некоторыми данными приложения. Я хочу иметь возможность общаться между контроллерами и делать это с помощью сервиса. Я столкнулся с проблемой, хотя с одним из моих маршрутов, потому что я хочу иметь возможность установить некоторые данные приложения со страницы в службу.
В signin.html есть несколько javascript, которые используют некоторые виджеты javascript и имеют обратные вызовы после завершения. Я пытаюсь вызвать метод в моем LoginController из сценариев, но я получаю неопределенный, потому что я неНе указывайте контроллер с помощью ng-контроллера. Есть ли способ получить LoginController из сценариев в моем signin.html?
myapp.js
var myApp = angular.module('myApp', ['ngCookies', 'ngResource'],
function ($routeProvider, $locationProvider, $httpProvider) {
});
myApp.service('sharedPropertiesService', function () {
var isValidUser = false;
return {
setValidUser: function (userValid) { isValidUser = userValid;},
isValidUser: function () {return isValidUser;},
};
});
myApp.controller('loginController', ['$scope', '$http', 'sharedPropertiesService',
function ($scope, $http, sharedPropertiesService) {
$scope.test = function() {alert('called from inside the html template.');};
}
]).controller('PageController', ['$scope', '$location', 'sharedPropertiesService',
function ($scope, $location, sharedPropertiesService) {
if (sharedPropertiesService.isValidUser()) {
$location.path('/myapp');
} else {
// Have them login
$location.path('/signin/');
}
}
]);
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/', {templateUrl: '/home.html', controller: 'PageController'}).
when('/signin', {templateUrl: '/signin.html', controller: 'SusiController'}).
when('/myap', {templateUrl: '/myApp.html', controller: 'PageController'});
}]);
index.html
// load Angularjs, jquery, etc.
signin.html
$.ready('loginwidget_main', function () {
loginwidget.load('signin', function () {
done : success,
fail : fail
});
});
function success() {
var scope = angular.element($('#myapp')).scope().test;
alert(scope); // this shows undefined
scope();
}
function fail() {alert("failed to login");}