一尘不染

AngularJS:如何从控制器功能切换视图?

angularjs

我正在尝试使用AngularJS 的 ng-click 功能来切换视图。我将如何使用下面的代码来做到这一点?

index.html

 <div ng-controller="Cntrl">
        <div ng-click="someFunction()">
            click me
        <div>
    <div>

controller.js

  function Cntrl ($scope) {
        $scope.someFunction = function(){
            //code to change view?
        }
    }

阅读 201

收藏
2020-07-04

共1个答案

一尘不染

为了在不同的视图之间切换,您可以直接在index.html文件中更改window.location(使用$ location服务!)。

<div ng-controller="Cntrl">
        <div ng-click="changeView('edit')">
            edit
        </div>
        <div ng-click="changeView('preview')">
            preview
        </div>
</div>

Controller.js

function Cntrl ($scope,$location) {
        $scope.changeView = function(view){
            $location.path(view); // path not hash
        }
    }

并配置路由器以根据位置切换到不同的部分(如此处所示https://github.com/angular/angular-
seed/blob/master/app/app.js)。这将具有历史记录以及使用ng-view的好处。

另外,您可以将ng-include与不同的部分一起使用,然后使用ng-
switch,如此处所示(https://github.com/ganarajpr/Angular-UI-
Components/blob/master/index.html)

2020-07-04