Как связать событие клика в угловых JS с помощью requirejs?
Подскажите, пожалуйста, как связать событие клика, используя require js + angularjs.
Я пытаюсь связать событие щелчка, но оно связывает событие щелчка Вот мой код
index.html
<!DOCTYPE html>
<html>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<head>
<link type="text/css" href="http://code.ionicframework.com/1.0.0-beta.1/css/ionic.css" rel="stylesheet" />
</head>
<body>
<ion-nav-view animation="slide-left-right"></ion-nav-view>
<script data-main="main" src="lib/require.js"></script>
</body>
</html>
main.js
requirejs.config({
paths: {
ionic:'lib/ionic.bundle'
},
shim: {
ionic : {exports : 'ionic'}
}, priority: [
'ionic'
],
deps: [
'bootstrap'
]
});
bootstrap.js
/*global define, require, console, cordova, navigator */
define(['ionic', 'app', 'routes'], function (ionic, angular, app) {
'use strict';
var $html,
onDeviceReady = function () {
angular.bootstrap(document, [app.name]);
};
document.addEventListener("deviceready", onDeviceReady, false);
if (typeof cordova === 'undefined') {
$html = angular.element(document.getElementsByTagName('html')[0]);
angular.element().ready(function () {
try {
angular.bootstrap(document, [app.name]);
} catch (e) {
console.error(e.stack || e.message || e);
}
});
}
});
app.js
/*global define, require */
define(['ionic'],
function (angular) {
'use strict';
var app = angular.module('app', [
'ionic']);
return app;
});
1 ответ
Решение
У вас есть несколько ошибок в вашем коде... слишком много, перечислите их все. См. Plunker для исправлений.
Модуль
ionic
должен быть экспортирован какangular
,requirejs.config({ paths: { ionic:'lib/ionic.bundle' }, shim: { ionic : {exports : 'angular'} }, priority: [ 'ionic' ], deps: [ 'bootstrap' ] });
Ionic/Angular должен быть загружен первым - или angular не может инициализироваться сам.
В маршрутах вы должны ссылаться на контроллер по имени, а не по местоположению
/*global define, require */ define(['app'], function (app) { 'use strict'; app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { $stateProvider .state('login', { url: "/login", templateUrl: "login.html", controller: 'controllers/LoginCtrl' // <-- should be 'LoginCtrl' }) $urlRouterProvider.otherwise("/login"); }]); });