プロジェクトに複数の ng-apps を含めることはお勧めできませんが、私のプロジェクトは一般的に互いに関連していないセグメントに分割されています。さらに、多かれ少なかれ他に選択肢がありません。
ng-cookie
私の問題は、 2 つの別々の Javascript ファイルの間で永続性があることです。dashboard1.html
にリンクされcontroller1.js
、にdashboard2.html
リンクされているとしましょうcontroller2.js
。
ここで、コントローラー 2 のコントローラー 1 の Cookie 値にアクセスしたいと思います。これを実行しようとすると、結果は未定義と表示され、別の Javascript ファイルによって設定された Cookie 値にアクセスできないことを意味します。
この問題を解決する方法を教えてください。
注 : Javascript ファイルには、それぞれの ng-app が定義されており、各アプリケーションのコントローラーがあります。
これはコントローラーでありng-app
、1 つのモジュールの一部です。
var app = angular.module('mainpageapp', ['ngRoute','ngCookies']);
app.controller('ctrlmainpage', ['$scope', '$timeout','$http', '$route', '$routeParams', '$location', '$rootScope', '$cookies', function ($scope, $timeout, $http, $route, $routeParams, $location, $rootScope, $cookies) {
console.log("Csadad");
$cookies.myFavorite = 'TestCookie';
var favoriteCookie = $cookies.myFavorite;
console.log("Cookie" + favoriteCookie);
この ng-app のコントローラーで Cookie を設定しています。正しく動作し、コンソールで期待どおりの応答が得られます。これはファイル controller1.js にあります
今、私は controller2.js で同じ cookie にアクセスしようとしていますが、これはすべて異なる ng-app によってバインドされています。
var app = angular.module('myApp', ['ngRoute', 'smart-table', 'ngCookies']);
var id = 'hasdh';
app.controller('dashmerctrl', ['$scope', '$timeout','$http', '$route', '$routeParams', '$location', '$rootScope', '$cookies', function ($scope, $timeout, $http, $route, $routeParams, $location, $rootScope, $cookies)
{
var favoriteCookie1 = $cookies.myFavorite;
console.log("Cookie1" + favoriteCookie1);
Her I は出力として未定義になります。
このファイル内の同じ Cookie にアクセスしたい。