我是AngularJS的新手,看起来很简单。 我想在空白页面上重用AngluarJS LocalStorageModule (没有UI,只执行一次并重定向)。调用Angularjs模块一次
这里是我的尝试看起来像:
<html>
<head>
<script src="../bower_components/angular/angular.js"></script>
<script src="../bower_components/angular-local-storage/dist/angular-local-storage.js"></script>
<script>
\t var myApp = angular.module('myApp', [ 'LocalStorageModule' ])
\t .factory(
\t \t \t function(localStorageService) {
\t \t \t \t
\t \t \t \t localStorageService.set('username', 'some-user');
\t \t \t \t localStorageService.set('token', 'somevalue'));
\t \t \t \t window.location = location.protocol + '//' + location.hostname
\t \t \t \t \t \t + (location.port ? ':' + location.port : '');
\t \t \t });
</script>
</head>
<body ng-app="myApp">You are being redirected
</body>
</html>
不幸的是,工厂函数不会被调用。 如果我用config替换工厂,函数会被调用,但localStorageServiceProvider不会公开我需要的set()方法。
我的练习的目的是在真正的AngularJS应用程序的本地浏览器存储中存储值,浏览器在上述代码执行后被重定向到正确的位置,以便它可以读取和使用存储的值。
我不能说我明白你的问题正确,但如果我是你首先需要正常'的.config()'这样的模块注入可以注入'LocalStorageModule'。之后,您可以使用'.run()'运行您需要运行一次的代码。另外,使用'$ location'进行重定向等。记得在'.run()'函数调用中注入'$ location'和'LocalStorageFactory'。 '.factory()'函数用于创建自己的工厂,而不是重用现有的模块/工厂。 –
@AleksandarBencun我没有将localStorageModule注入到.config()中。我改为使用localStorageModuleProvider。我猜测这是不同的事情。 为什么$ location比我的方法更可取?如果你注意到这不是一个真正的AngularJS应用程序,我只是想重用一个AngularJS模块。 感谢与.run()的提示,请看看。 –
那么,文档中明确指出,您需要使用'var myApp = angular.module('myApp',['LocalStorageModule']);'进行初始模块注入。之后,在注入功能模块时需要使用'localStorageServiceProvider',例如'.run(function(localStorageServiceProvider){/ * code * /});' –