Javascript 如何访问不同页面控制器中的更新值?
我在获取不同页面控制器中的更新值时遇到问题,情况如下 page1.htmlJavascript 如何访问不同页面控制器中的更新值?,javascript,angularjs,angular-broadcast,angularjs-rootscope,Javascript,Angularjs,Angular Broadcast,Angularjs Rootscope,我在获取不同页面控制器中的更新值时遇到问题,情况如下 page1.html <body ng-app="app"> <div ng-controller="ctrl1">{{ version }}</div> </body> <body ng-app="app"> <div ng-controller="ctrl2">{{ version }}</div> </body> 结果 version
<body ng-app="app">
<div ng-controller="ctrl1">{{ version }}</div>
</body>
<body ng-app="app">
<div ng-controller="ctrl2">{{ version }}</div>
</body>
结果
version: 1.0.0.1 // page1.html
version: 1.0.0.1 // page2.html
version: 1.0.0.1 // page1.html
version: 1.0.0.2 // page2.html
预期结果
version: 1.0.0.1 // page1.html
version: 1.0.0.1 // page2.html
version: 1.0.0.1 // page1.html
version: 1.0.0.2 // page2.html
如何实现这种局面
我尝试使用本教程中的
$broadcast
为seprate页面控制器传递值:在controller use broadcast和on方法之间传递值。请参阅AngularJS.html中的链接$emit、-$broadcast和-$on在controller use broadcast和on方法之间传递值。请参阅AngularJS.html中的链接$emit、-$broadcast和-$on在controller use broadcast和on方法之间传递值。请参阅AngularJS.html中的链接$emit、-$broadcast和-$on在controller use broadcast和on方法之间传递值。请参考AngularJS.html中的链接$emit、-$broadcast和-$on你不能在不丢失所有数据的情况下重新加载页面,你知道吗?你的$rootScope
死了,一切都死了…:)你的例子完全错了。使用SPA路由不强制重新加载浏览器,或者使用某种类型的本地存储来确保数据安全
我还注意到您正在绑定到原语
$scope.version=$rootScope.Data.version代码>-不要这样做,使用$scope.data=$rootScope.data然后是{{data.Version}
。无论如何,您根本不应该使用$rootScope。您不能只重新加载页面而不丢失所有数据,您知道吗?你的$rootScope
死了,一切都死了…:)你的例子完全错了。使用SPA路由不强制重新加载浏览器,或者使用某种类型的本地存储来确保数据安全
我还注意到您正在绑定到原语$scope.version=$rootScope.Data.version代码>-不要这样做,使用$scope.data=$rootScope.data然后是{{data.Version}
。无论如何,您根本不应该使用$rootScope。您不能只重新加载页面而不丢失所有数据,您知道吗?你的$rootScope
死了,一切都死了…:)你的例子完全错了。使用SPA路由不强制重新加载浏览器,或者使用某种类型的本地存储来确保数据安全
我还注意到您正在绑定到原语$scope.version=$rootScope.Data.version代码>-不要这样做,使用$scope.data=$rootScope.data然后是{{data.Version}
。无论如何,您根本不应该使用$rootScope。您不能只重新加载页面而不丢失所有数据,您知道吗?你的$rootScope
死了,一切都死了…:)你的例子完全错了。使用SPA路由不强制重新加载浏览器,或者使用某种类型的本地存储来确保数据安全
我还注意到您正在绑定到原语$scope.version=$rootScope.Data.version代码>-不要这样做,使用$scope.data=$rootScope.data然后是{{data.Version}
。无论如何,您根本不应该使用$rootScope。您知道我在使用Angular两年后发现,使用$scope.version这样的直接变量对Angular不是最好的,因为它们添加了不同的手表,在您的情况下,您正在重写“version”的实例
无论如何,试着这样写,在不同的控制器、服务、指令等之间同步的所有内容
var state = {
version: $rootScope.Data.Version,
anyOtherVariable: value
};
$scope.state = state;
你知道我在使用Angular 2年后发现,使用$scope.version这样的直接变量不是Angular的最佳选择,因为它们添加了不同的手表,在你的例子中,你正在重写“version”的实例
无论如何,试着这样写,在不同的控制器、服务、指令等之间同步的所有内容
var state = {
version: $rootScope.Data.Version,
anyOtherVariable: value
};
$scope.state = state;
你知道我在使用Angular 2年后发现,使用$scope.version这样的直接变量不是Angular的最佳选择,因为它们添加了不同的手表,在你的例子中,你正在重写“version”的实例
无论如何,试着这样写,在不同的控制器、服务、指令等之间同步的所有内容
var state = {
version: $rootScope.Data.Version,
anyOtherVariable: value
};
$scope.state = state;
你知道我在使用Angular 2年后发现,使用$scope.version这样的直接变量不是Angular的最佳选择,因为它们添加了不同的手表,在你的例子中,你正在重写“version”的实例
无论如何,试着这样写,在不同的控制器、服务、指令等之间同步的所有内容
var state = {
version: $rootScope.Data.Version,
anyOtherVariable: value
};
$scope.state = state;
但是我有不同的控制器页面在第一个控制器上创建工厂变量方法然后调用广播。但是我有不同的控制器页面在第一个控制器上创建工厂变量方法然后调用广播。但是我有不同的控制器页面在第一个控制器上创建工厂变量方法调用广播。但是我对控制器有不同的页面首先在工厂中创建变量方法,然后调用广播。您的JSFIDLE似乎与您提供的代码不匹配。我的意思是,rootScope
在你的小提琴里哪里?我在谷歌上搜索并获得了使用广播的JSFIDLE教程。对于单页,多个控制器正在工作。但是我需要多个页面控制器。如何呈现单独的页面(视图)?ng路由还是ui路由器?我什么都没用。基本上,我是在页面之间重定向。page1.html
和page2.html
是否表示您实际上在使用两个单独的htmls文件?如果是这样,那么您尝试做的是不可能的(除非您使用某种外部存储/传输机制[url,loca