我的目标是将地址从一个页面传递到某个网站,然后在Electron <webview>
容器中打开。我正在使用AngularJS来做到这一点。当我尝试从portalFactory.get()
访问portalViewController
时,似乎正在发生问题。我在portalController
中设置了值,随后可以从该控制器成功调用portalFactory.get()
,但似乎无法从另一个控制器成功调用,如下所示。
还值得注意的是,我在Angular方面相对较新,所以这可能是一件小事,我做错了。现在,我只是想让它成功打印值,然后再继续将<webview>
src设置为该值。
我有以下代码提示:
core.js:
var portal = angular.module('portal', []);
var new_portal;
portal.controller('portalController', function ($scope, portalFactory) {
$scope.onSubmit = function() {
let window = require('electron').remote.BrowserWindow;
portalFactory.set($scope.portal_domain.toString()); // accessing portal_domain ng-model successfully
new_portal = new window({
title: 'New Portal Window'
});
new_portal.loadURL(path.join('file://', __dirname, '/../pages/portal.html')); //load portal.html page... relevant pieces shown below
}
});
portal.controller('portalViewController', function($scope, portalFactory) {
console.log(portalFactory.get());
});
portal.factory('portalFactory', function() {
var src = "";
function set(data) {
src = data;
}
function get() {
return src;
}
return {
set: set,
get: get
};
});
相关的portal.html:
<webview
name="content_panel"
class="hide"
preload="../../preload.js"
src=""
style="height: 100vh; width: 100vw"
></webview>
<script src="../../renderer.js"></script>
这里的结果是在我的控制台中记录了一个空字符串,这使我相信该值正在控制器之间重置,这不是我想要的。
感谢您可以提供的任何帮助,如果您还有其他需要我上载/添加/回答的问题,请告诉我。