如何扩展引导​​ ui 控制器

Posted

技术标签:

【中文标题】如何扩展引导​​ ui 控制器【英文标题】:How to extend a bootstrap ui controller 【发布时间】:2016-02-13 17:47:26 【问题描述】:

我已经在我的 Angular 项目中包含了 bootstrap ui 模块,现在我想扩展“ui-bootstrap-tpls.js”中的 datepicker 控制器“UibDatepickerController”等更多功能。

好的,我可以编辑 ui 引导文件,但这不是我想要的。

我想要一个模块化文件(可能是一个自己的指令),这样当 ui 引导更新到来时不会出现大问题。

这可能吗?最佳做法是什么?

【问题讨论】:

是否要更改驻留在 ui-bootstrap-tpls.js 中的 html 模板? 没有。我想为控制器添加更多功能。 【参考方案1】:

您可以尝试注入 $controller 并像这样扩展:

app.directive('myUiDirective', function ($controller) 
    return 
        link: function (scope, iElem, iAttr) 
            angular.extend(this, $controller('UibDatepickerController', $scope: scope));

    
);

但是我不确定您是否能够从不同的模块(在这种情况下,从ui.bootstrap)获取控制器。

【讨论】:

在这种情况下,我收到 $injector 错误,因为它在另一个模块中。

以上是关于如何扩展引导​​ ui 控制器的主要内容,如果未能解决你的问题,请参考以下文章

带有引导程序 ui-datepicker 的 Angularjs

第5课 - 主引导程序的扩展(下)

Xcode使用介绍之二:创建UI界面+连线

Material UI 控制的扩展面板不工作

操作系统--主引导程序的扩展

$scope.$watch 不在 ui.bootstrap.modal 控制器中引发事件