设置路由时,角度范围变量会发生变化
Angular scope variable change when route is set?
所以我有一个绑定到 2 个视图的控制器。在控制器中,我希望将范围变量设置为:
$scope.isOffset = false;
当路由另一个视图时,我希望它设置为 true。我的应用程序中的路线.js设置为:
$routeProvider.when("/claimSub", {
controller: "claimsController",
templateUrl: "ppt/views/claims/claimSub.html"
});
$routeProvider.when("/offsetSwipe", {
controller: "claimsController",
templateUrl: "ppt/views/swipes/offsetSwipe.html"
});
这两个视图还具有绑定到具有以下作用域的输入:
$scope.claimInfo = {
id: "",
benefitId: "",
isSecIns: "",
isNoResid: "",
expenseTypeId: "",
fromDate: "",
toDate: "",
provider: "",
who: "",
depId: "",
age: "",
amount: "",
comments: "",
isOffset: "",
};
因此,请确保上面显示的第二条路线,这个"isOffset"是相同的。
我没有使用状态提供程序,但不确定这是否适用于这里,因为一个视图不是另一个视图的子集。
所以试图弄清楚我能在这里做什么?在我看来,但我无法弄清楚如何,最好的方法是更改路由并向应用程序添加某种变量或 setter.js对于我希望该变量设置为 true 的视图。
当路由器更改视图时,它会破坏控制器并破坏其范围。然后,它会创建一个新作用域并实例化新的控制器。即使新控制器与旧控制器相同,它也会执行此操作。
要根据路由设置变量,请在路由中放置一个解析函数:
$routeProvider.when("/claimSub", {
controller: "claimsController",
templateUrl: "ppt/views/claims/claimSub.html",
resolve: { isOffset: function() { return false } }
});
$routeProvider.when("/offsetSwipe", {
controller: "claimsController",
templateUrl: "ppt/views/swipes/offsetSwipe.html",
resolve: { isOffset: function() { return true } }
});
然后,当控制器在新视图中启动时:
$scope.isOffset = $scope.$resolve.isOffset;
"claimController"控制器实例化两次,一次用于claimSub
视图,另一次用于offsetSwipe
视图。
如果需要在两个视图(路由)之间共享数据,则可以使用服务执行此操作,或者如果要共享范围,则必须添加父控制器(例如,将"mainController"添加到包装所有视图的元素中)。
例如,使用附加到<body>
的ng-controller="mainController"
,并在此控制器中设置需要在两个视图之间共享的变量。如果您需要知道状态(视图)何时更改,请使用$rootScope.$on( "$routeChangeSuccess", ... )
。
您可以尝试使用 $location.path()
获取当前页面,然后可以相应地设置isOffset
$scope.isOffset = currentPage === 'claimSub';
- 重新加载页面时Javascript变量发生变化
- 如何检测和打印变化变量LESS
- 当变量发生变化时运行PHP
- 使用 jquery 检测变量变化
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- 为什么 Angular 没有注意到这个变量的值发生了变化
- 如何防止变量在 JavaScript 中发生变化
- 为什么这个变量在函数之间传递时会发生变化
- 指令侦听控制器变量的变化
- JAVASCRIPT 变量在函数中没有变化
- 双向绑定不识别 AngularJS 中的变量变化
- 角度范围之外的变量的变化
- 设置路由时,角度范围变量会发生变化
- PHP 变量根据设备宽度而变化
- 观察Jquery/Javascript中的变量变化
- Javascript -在变量变化时播放声音
- jQuery中奇怪的变量变化
- Angular JS $作用域、数据绑定和变量变化
- Angular不会识别forEach循环中的作用域变量变化
- 如何使动态视图在作用域变量变化时正确更新