javascript – 设置路由时角度范围变量会发生变化吗?

所以我有一个绑定到2个视图的控制器.在控制器中,我希望将范围变量设置为:

$scope.isOffset = false;

当另一个视图被路由时,我希望它设置为true.我的app.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’是相同的.

我没有使用stateProvider,但不确定这适用于此,因为一个视图不是另一个视图的子集.

那么试图弄清楚我能在这做什么?在我看来,但我无法弄清楚如何,最好的路线是改变路由并为app.js添加某种变量或setter,以便我希望该变量设置为true.

解决方法:

当路由器更改视图时,它会破坏控制器并破坏其范围.然后,它创建一个新范围并实例化新控制器.即使新控制器与旧控制器相同,它也会这样做.

要根据路径设置变量,请在路径中添加resolve函数:

$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;
上一篇:php – 如何使用锚标记在laravel中路由?


下一篇:php – Laravel使用Route :: resource生成路由需要添加前缀/ admin /