javascript - Angular.js 最佳实践 - 扩展 Controller 、覆盖 Controller 默认值

标签 javascript angularjs angularjs-controller

这是一个我无法理解的现实生活中的 Angular 问题。 我喜欢 Angular,但这个问题现在很困扰我。

扩展现有 Controller 的功能并在应用程序的其他页面上使用扩展 Controller 的最佳实践是什么? 换句话说:如何在 Angular 中进行 Controller 继承?

已删除 - 23/09/2014,我不认为我的原始用例的描述可以帮助访问者更好地理解我在这里所追求的内容。我认为这分散了人们对真正问题的注意力。

最佳答案

半年后我想我完全明白发生了什么。 正如本文评论中所指出的,最简单的答案是服务。

在最理想的情况下,所有范围变量都是从工厂/服务收集的值。不过,您可能希望使用完全相同的 Controller 和一个额外的函数:$scope.someFunction(){},并保留其余的。在这种情况下,您确实有一个“瘦” Controller 逻辑,这是理想的 Controller 设计 - 但最终可能仍然有一百行或更多行代码。您不希望在其他 Controller 中重复它,只是因为您需要一些额外的 Controller 逻辑(例如 $scope.someFunction() )

那你怎么办?

答案是这样的:

  1. 确保您已采取一切措施来解决与工厂的问题
  2. 如果您绝对确定自己做到了,请进行 Controller 注入(inject):

    .controller('childController', function ($scope, $controller) {
      'use strict';
      $controller('parentController', {$scope: $scope});
      $scope.someFunction=function(){}
    })
    

就这么简单。 -- 再说一次,通常情况下,事情可以通过工厂来解决..

希望您觉得这很有用;)

关于javascript - Angular.js 最佳实践 - 扩展 Controller 、覆盖 Controller 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483555/

相关文章:

angularjs - 如何使用 Angular.js 发出 HTTP 请求?

javascript - 将 Angular 模块添加到 mean.io 包

javascript - AngularJS $scope 数据没有显示任何内容

AngularJS : The correct way of binding to a service properties

php - Json 编码为非 ascii 字符?

javascript - 如何用d3.js制作一个从黑到白连续闪烁的svg文本?

javascript - TinyMCE:退格问题

angularjs - 根据路由组动态加载 Controller

javascript - 自动加载无限滚动,一次又一次地显示最后一项

javascript - React 中的条件类名?