栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

扩展AngularJS控制器的推荐方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

扩展AngularJS控制器的推荐方法是什么?

也许 不扩展控制器,但是可以扩展控制器或将单个控制器混合为多个控制器。

module.controller('CtrlImplAdvanced', ['$scope', '$controller', function ($scope, $controller) {    // Initialize the super class and extend it.    angular.extend(this, $controller('CtrlImpl', {$scope: $scope}));    … Additional extensions to create a mixin.}]);

创建父控制器后,其中的逻辑也将执行。有关更多信息,请参见$ controller(),但仅

$scope
需要传递值。所有其他值将正常注入。

@mwarren ,Angular依赖注入自动解决了您的顾虑。您所需要做的就是注入$ scope,尽管如果需要可以覆盖其他注入的值。请看以下示例:

(function(angular) {    var module = angular.module('stackoverflow.example',[]);    module.controller('simpleController', function($scope, $document) {        this.getOrigin = function() { return $document[0].location.origin;        };    });    module.controller('complexController', function($scope, $controller) {        angular.extend(this, $controller('simpleController', {$scope: $scope}));    });})(angular);<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script><div ng-app="stackoverflow.example">    <div ng-controller="complexController as C">        <span><b>Origin from Controller:</b> {{C.getOrigin()}}</span>    </div></div>

虽然$ document在由’complexController’创建时未传递到’simpleController’中,但会为我们注入$ document。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号