я получаю это исключение след:TypeError при работе Угловая директива под электроном?
TypeError: element.get не является функцией по ссылке (http://localhost:9071/js/class-editor-canvas-directive.js:6:33) на invokeLinkFn (http://localhost:9071/bower_components/angular/angular.js:8841:9) на nodeLinkFn (http://localhost:9071/bower_components/angular/angular.js:8335:11) на compositeLinkFn (http://localhost:9071/bower_components/angular/angular.js:7731:13) в compositeLinkFn (http://localhost:9071/bower_components/angular/angular.js:7734:13) на publicLinkFn (http://localhost:9071/bower_components/angular/angular.js:7611:30) на http://localhost:9071/bower_components/angular-ui-router/release/angular-ui-router.js:4026:9 в invokeLinkFn (http://localhost:9071/bower_components/angular/angular.js:8841:9) в nodeLinkFn (http://localhost:9071/bower_components/angular/angular.js:8335:11) в compositeLin kFn (http://localhost:9071/bower_components/angular/angular.js:7731:13)
Я пытаюсь запустить приложение на основе угловых.js и paper.js под электроном. Он отлично работает в Интернете и использует хром в качестве пользовательского интерфейса. Тем не менее, я также хочу поддерживать автономный пользовательский интерфейс, используя электронную оболочку.
Ошибка выше происходит на последней строке ниже:
jModeller.directive('classEditor', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
paper.setup(element.get(0));
При запуске на электрон, отладчик показывает, что тип «элемента» является:
element: JQLite[1]
> 0: canvas
length: 1
__proto__: Object[0]
Но когда работает под хром , отладчик показывает тип «элемента»:
element: jQuery.fn.init[1]
0: canvas
context: canvas
length: 1
__proto__: jQuery[0]
Почему разница? И есть ли какое-то выражение, которое я могу использовать вместо element.get (0), чтобы получить эту угловую директиву, работающую под электроном?
=====
Дополнительная информация.
Вот это «main.js», который работает под электроном:
'use strict';
var app = require('app');
var BrowserWindow = require('browser-window');
var mainWindow = null;
var express = require('express');
var expressApp = express();
expressApp.use('/', express.static('../assets'));
expressApp.listen(9071);
app.on('ready', function() {
mainWindow = new BrowserWindow({
height: 600,
width: 800
});
mainWindow.loadUrl('http://localhost:9071/#/');
});
Таким образом, вы можете видеть, что я служу до приложения на порт 9071, а затем просто использовать электрон, чтобы просмотреть, как и на локальном хосте.
В index.html, все JavaScript библиотеки загружены:
<!DOCTYPE html>
<html xmlns:ng="http://angularjs.org" class="no-js" lang="en" ng-app="jModeller" id="ng-app">
<head>
<meta charset="UTF-8">
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-touch/angular-touch.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<script src="bower_components/angular-mocks/angular-mocks.js"></script>
<script src="bower_components/ng-sortable/dist//ng-sortable.min.js"></script>
<script src="bower_components/angular-ui-select/dist/select.js"></script>
<script src="bower_components/ng-tags-input/ng-tags-input.min.js"></script>
<script src="bower_components/rfc6570/rfc6570.js"></script>
<script src="bower_components/angular-hal/angular-hal.js"></script>
<script src="bower_components/angular-slugify/angular-slugify.js"></script>
<script src="bower_components/ng-table/dist/ng-table.min.js"></script>
<script src="bower_components/moment/moment.js"></script>
<script src="bower_components/angular-moment/angular-moment.min.js"></script>
<script src="bower_components/angular-ui-tree/dist/angular-ui-tree.js"></script>
<script src="bower_components/angular-cache-buster/angular-cache-buster.js"></script>
<script src="bower_components/angular-prompt/dist/angular-prompt.js"></script>
<script src="bower_components/angular-breadcrumb/dist/angular-breadcrumb.min.js"></script>
<script src="bower_components/highcharts/highcharts.js"></script>
<script src="bower_components/highcharts/highcharts-3d.js"></script>
<script src="bower_components/highcharts/modules/exporting.js"></script>
<script src="bower_components/underscore.string/lib/underscore.string.js"></script>
<script src="bower_components/underscore/underscore.js"></script>
<script src="bower_components/angular-aria/angular-aria.js"></script>
<script src="bower_components/spin.js/spin.js"></script>
<script src="bower_components/angular-spinner/angular-spinner.js"></script>
<script src="bower_components/angular-toggle-switch/angular-toggle-switch.js"></script>
<script src="bower_components/angular-toastr/dist/angular-toastr.tpls.min.js"></script>
<script src="bower_components/angular-ui-utils/ui-utils.js"></script>
<script src="bower_components/angular-loading-bar/build/loading-bar.min.js"></script>
<script src="bower_components/angular-progress-arc/angular-progress-arc.min.js"></script>
<script src="bower_components/angular-highcharts-directive/src/directives/highchart.js"></script>
<script src="bower_components/angular-bootstrap-lightbox/dist/angular-bootstrap-lightbox.js"></script>
<script src="bower_components/angular-async-series/dist/angular-async-series.min.js"></script>
<script src="bower_components/angular-ui-grid/ui-grid.js"></script>
<script src="bower_components/angular-local-storage/dist/angular-local-storage.min.js"></script>
<script src="bower_components/ng-csv/build/ng-csv.min.js"></script>
<script src="bower_components/ng-file-upload/ng-file-upload.min.js"></script>
<script src="bower_components/paper/dist/paper-full.min.js"></script>
Довольно много библиотек, и, конечно, не все нужны. Я просто сократил этот список из другого проекта, над которым я работал. Проблема, кажется, заключается в том, что jquery не загружается правильно и недоступен для углового.
Я могу видеть под вкладкой сети инструментов инструментов, хотя «jquery.js» успешно загружен статусом 200, когда загружен index.html.
У вас есть/(определено ранее tan angularjs) jQuery под электроном? –
Да, в index.html jquery первое импортированное: – user2800708
кажется, что в электронном jQuery не было найдено, или вместо этого используется встроенный jqLite. Удостоверьтесь, что jQuery действительно загружен. Оберните это предупреждение (« У вас запущена версия jQuery: »+ $ .fn .jquery), в $ (document) .ready – Molda