Как загрузить угловой маршрут из кода в Electron JS? - PullRequest
0 голосов
/ 23 марта 2019

Я написал простое приложение Electron JS с Angular JS и angular-route.js.Маршрутизация работает по ссылкам (например, <a href="#!/route1">Route 1</a>), но я не могу понять, как вызвать изменение маршрута в коде.Если бы это был простой JavaScript, я бы сделал это с $location.path.Но это не похоже на работу внутри электрона.Мне тоже не повезло с loadFile и loadURL.

Я просто использую неправильный API маршрутизации (я видел несколько) или я делаю это неправильно?

Мой код:

var app = angular.module("app", ['ngRoute']);

app.config(['$locationProvider', '$routeProvider',
    function config($locationProvider, $routeProvider) {
        $locationProvider.hashPrefix('!');		        
		
		console.log("Config is running");
		
        $routeProvider.when('/route1', {			
            templateUrl: 'route1.html' 
        }).when('/route2', {
			controller: "route2Controller",
            templateUrl: 'route2.html'
        }).when('/route3', {
			
			templateUrl: 'route3.html'
        }).otherwise({
			
            templateUrl: 'route1.html'
        });
    }

]);

app.controller("route2Controller", function($scope) {
	
	console.log("route2Controller fired");
	
	const { BrowserWindow } = require('electron').remote;

	//these three lines work, so I know I've got the BrowserWindow alright.
	//let win = new BrowserWindow({ width: 800, height: 600 });	
	//win.on('closed', () => { win = null });	
	//win.loadFile('index.html');
	
	// But this doesn't change to route #3
	BrowserWindow.getFocusedWindow().loadURL('#!/route3');
	
	//This just gets me a blank window
	BrowserWindow.getFocusedWindow().loadFile('index#!/route3');
		
});
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
	
	<script
		src="http://code.jquery.com/jquery-3.3.1.min.js"
		integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
		crossorigin="anonymous"></script>


	
  </head>
  <body ng-app="app">
    <a href="#!/route1">Route 1</a>
	<a href="#!/route2">Route 2</a>
	<a href="#!/route3">Route 3</a>

	<div ng-view></div>
	
	<script id="route1.html" type="text/ng-template">
		Route # 1	
	</script>
	
	<script id="route2.html" type="text/ng-template">
		Route # 2
	</script>
	
	<script id="route3.html" type="text/ng-template">
		Route # 3
	</script>
	
  </body>
	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular-route.js"></script> 
	<script src="app.js"></script>
	
</html>

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...