簡體   English   中英

如何重新加載頁面(angularJs)

[英]How to reload page (angularJs)

我們有使用AngularJs作為前端的MVC應用程序。 菜單視圖具有以下代碼

  <ul> @foreach (var child in parent.Children) { <li class="@MenuHelper.SetChildClass(child, ViewBag) childNode"> <a href="@child.NavigateUrl">@child.Text</a> </li> } </ul> 

我們的應用程序中也有幾個單頁表單(因此,它們應該僅顯示索引視圖)。 他們具有以下代碼的“取消”按鈕:

  $scope.cancel = function () { // window.console && console.log("Cancel fired"); $scope.form.$setPristine(); $scope.showForm = false; // close the form //$state.go('home', {}, { reload: "true" }); }; 

所以,這就是問題所在。 從主菜單(或從“收藏夾”菜單),我激活該單頁表單。 我按取消按鈕。 然后,我嘗試再次激活該菜單(例如,從“收藏夾”中)。 而且-沒有任何反應。 我只看到旋轉的圓圈。 該表單的控制器代碼永遠不會觸發。

我相信問題出在緩存上,而且重裝從未發生。 我的問題是-我需要怎么做才能確保該頁面正在重新加載? 我檢查了幾個線程,但是它們沒有使用顯示的菜單視圖中的代碼。 我還在其中一個頁面的js文件中嘗試了以下操作:

 app.config(['$stateProvider',function($stateProvider) { $stateProvider.state('home', { url: '/', template: '', cache: false }). state('edit', { url: '/edit/:id', cache: false }).state('new', { url: '/new', cache: false }); }]); 

例如,我添加了緩存:false

但這沒有效果。 我想我需要菜單文件中的內容,但是我不確定如何修復該行@ child.Text以確保重新加載。

編輯:從評論。

我所討論頁面的控制器具有以下代碼:

app.controller('prefsSlsSearchController', ['$scope', '$rootScope', '$timeout', '$state', 'prefsSlsService', 'resourceFactory', function ($scope, $rootScope, $timeout, $state, prefsSlsService, resourceFactory) { 
var init = function () { 
  $scope.isEditLoading = true; 
  window.console && console.log("Init fired"); 
  $scope.disableAction = false; 
  $scope.showForm = false; 
  doSearch(); 
};

味精永遠不會顯示scnd時間

有了ui-router您可以使用

$state.go($state.$current, null, { reload: true }); 

要么

$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true }); 

要么

$state.reload();

如果使用$routePovider ,則可以使用$route.reload();

在您的控制器中,您必須傳遞$window 並使用: $window.location.reload(); 在您的功能內部。

對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM