我正在编写一些我希望可以重用的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");
};
以某种方式从我的代码“继承”。
有没有办法实现这两件事?