我是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 * /});' –