angularjs - 更改 View 时加载 Controller 的最简单方法是什么?

标签 angularjs angular-ui-router lazy-loading angular-controller

当我从一个 View 切换到另一个 View 时,我想加载一个 Controller 。

例如,我在主页中,用户想转到登录页面。我在一个文件中有一个 LoginController,它不包含在 app.js(主 AngularJS 脚本)中,我只想在用户转到登录页面时加载它。

我看到了不同的解决方案,但都非常复杂,我的 Controller 非常简单,我只想将它们放在不同的文件中,但如果我不打算使用它们,我不想加载 Controller 。

谢谢。

最佳答案

您可能需要 ng-route。这是一个完全按照您的意愿行事的模块。 (连同其他功能 -> ngRoute 。 你用下一种方式定义路线。

var app = angular.module('app ', []);
app .config(['$routeProvider',
  function($routeProvider) {
  $routeProvider.
    when('/login', {
      templateUrl: 'login.html',
      controller: 'loginController'
    }).
    when('/home', {
      templateUrl: 'home.html',
      controller: 'homeController'
    }).
  otherwise({
    redirectTo: '/home'
  });
}]);

另外,您必须声明 loginController,但别担心,如果您更改它绑定(bind)的 View , Controller 会被销毁,并在您再次打开登录页面时重新创建。

关于angularjs - 更改 View 时加载 Controller 的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35339123/

相关文章:

java - 在 Java 8 中延迟返回第一个非空列表

php - CodeIgniter 事件记录 : Load One Row at a Time

javascript - ng-model 发生变化时会触发方法

javascript - 如何在 REST 调用成功或事件广播后加载 Angular 日期过滤器

javascript - 如何禁止按下 "next"按钮,直到所有输入都更新

javascript - ui-router subview 内有多个 View

javascript - 根据元素出现的频率对数组进行排序

javascript - AngularJS 中可配置的授权角色

javascript - Foundation for Apps,如何更改表单提交的 View ?

javascript - jQuery 从具有 AngularJS 内容的页面加载 #div