当前位置: 首页 > 面试题库 >

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

吴高畅
2023-03-14
问题内容

我正在尝试使用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?
        }
    }

问题答案:

为了在不同的视图之间切换,您可以直接在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



 类似资料:
  • 问题内容: 如何从视图调用Codeigniter控制器功能?当我在控制器中调用该函数时,获得404页面。 问题答案: Codeigniter是一个MVC(模型-视图-控制器)框架。从视图中调用函数确实不是一个好主意。该视图应仅用于演示,并且在进入控制器和模型中的视图之前,应先进行所有逻辑处理。 这很简单,但是确实提供了一个很好的方法。 我希望这有帮助!

  • 问题内容: 如何从网页的任何位置(控制器组件外部)调用控制器下定义的函数? 当我按下“获取”按钮时,它可以完美运行。但是我需要从div控制器外部调用它。逻辑是:默认情况下,我的div是隐藏的。在导航菜单中的某个位置,我按了一个按钮,它应该显示()我的div并执行“获取”功能。我该如何实现? 我的网页是: 我的js: 问题答案: 这是从外部调用控制器功能的一种方法: 您的控制器的功能在哪里。 你可以

  • 问题内容: 我正在使用socket.io在我的应用中启用聊天功能,并且正在使用一项服务来执行所有套接字操作。当出现消息时,我想从服务中触发控制器的功能以在UI中进行一些更改。所以我想知道如何从服务访问控制器的功能。样例代码: 这是服务的示例代码。 现在控制器的代码 问题答案: 您可以通过使用角度事件或来实现此目的。 在您的情况下会有所帮助,您需要广播事件,以便具有相同事件名称的所有子作用域都可以监

  • 问题内容: 是否可以在AngularJS控制器中创建 HTML 片段并将该HTML显示在视图中? 这是因为需要将不一致的JSON Blob转换为嵌套的对对列表。因此,在控制器中创建了 HTML ,现在我希望显示它。 我已经创建了模型属性,但是如果不打印 HTML 便无法在视图中呈现它。 更新资料 看来问题出在将创建的HTML角化为引号内的字符串而引起。将尝试找到解决此问题的方法。 控制器示例: 示

  • 问题内容: 是否可以在AngularJS控制器中创建 HTML 片段并将该HTML显示在视图中? 这是因为需要将不一致的JSON Blob转换为嵌套的对对列表。因此,在控制器中创建了 HTML ,现在我希望显示它。 我已经创建了一个模型属性,但是如果不打印 HTML 便无法在视图中呈现它。 更新资料 看起来问题出在将创建的HTML角化为引号内的字符串而引起。将尝试找到解决此问题的方法。 控制器示例