gpt4 book ai didi

javascript - AngularJS 从 Controller 更改 ng-view 中的 View

转载 作者:行者123 更新时间:2023-12-03 08:45:28 26 4
gpt4 key购买 nike

我有一个 JavaScript Web 应用程序,我在其中使用 AngularJS 来简化操作,但现在遇到了一个小问题。

我想从 ng-controller 更改 View 。我使用 $location.path 来执行此操作,但遗憾的是,没有任何反应。如果我检查 $location 对象,路径将正确更改,但 View 不会更改。

我的 Home.html 中有一个 ng-view。这是我为其编写的配置:

<html ng-app="app">
...
<body>
<div id="navigation-menu" ng-controller="NavigatorController">
<a class="menulink" ng-class="{ active: isActive('/labels')}" href="#page2">Page2</a>
<a class="menulink" ng-class="{ active: isActive('/labels')}" href="#page3">Page3</a>
</div>

<div ng-view></div>
</body>
</html>

这是我为 $routeProvider 所做的配置,在菜单系统中使用时可以完美运行

myApp.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'Page1.html',
controller: 'Page1Controller'
})
.when('/page2', {
templateUrl: 'Page2.html',
controller: 'Page2Controller'
})
.when('/page3', {
templateUrl: 'Page3.html',
controller: 'Page3Controller'
});
});

打开应用程序后,我想在 ng-view 中显示 Page1.html,所以我猜它是通过“/”url 进行排序的。

问题是,我希望能够从所有其他 Controller 返回到 Page1.html。

我尝试在每个其他 Controller 中创建一个事件,如下所示:

$scope.NavigateBack = function() {
$location.path('/');
}

遗憾的是,它不起作用。但我没有收到任何错误消息...我尝试了路径中的不同地址,例如“/page2”,但没有任何效果。

我做错了什么, View 没有改变并且页面没有导航?

最佳答案

我推荐使用

$window.location = "#/"

但不要忘记将 $window 注入(inject)到您的 Controller

关于javascript - AngularJS 从 Controller 更改 ng-view 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com