如何创建可扩展的angularjs模块

时间:2016-05-21 17:02:06

标签: angularjs angularjs-design-patterns

我正在编写一些我希望可以重用的AngularJS代码。我正在试图弄清楚如何将它放入控制器/指令/服务等。

它在控制器的$scope对象上设置了一些值,我目前将它作为控制器,可直接在html中使用:

angular
    .module("ThingDemo", [])
    .controller("ThingController", function ($scope, $attrs) {
        $scope.message = "The thing attribute is " + $attrs.thing;
        $scope.shout = function () { alert($scope.message); }
    });

它在html中使用如下:

<div ng-app="ThingDemo" ng-controller="ThingController" data-thing="foo">
    <div>{{message}}</div>
    <button ng-click="shout()">Click me</button>
</div>

如果我希望我的代码的未来用户能够向$ scope对象添加更多内容,我应该如何实现它?我确实希望直接将值和函数附加到$scope对象,因为我希望此代码的“普通”用户能够在不编写任何javascript的情况下使用它(即,无需自己定义控制器 - 实际使用{ {1}}如上所述)。据我所知,控制器是操纵"ThingController"对象的唯一方法。

除此之外,我希望未来的用户能够在必要时使用/扩展现有代码,例如。

$scope

$scope.shout2 = function () { console.log("About to shout"); $scope.shout(); console.log("Just shouted"); }; 以某种方式从我的代码“继承”。

有没有办法实现这两件事?

0 个答案:

没有答案