应用程序中可重用的AngularJS服务
发布时间:2020-12-17 10:18:18 所属栏目:安全 来源:网络整理
导读:我对AngularJS很新,所以我可能会问完全错误的问题.我想要完成的是在单个应用程序中创建一个可重用的数据绑定类.下面用一个非常简单的例子演示了我想要完成的事情. 假设我想创建一个带有值和增量方法的计数器.我可以创建一个服务并在控制器中使用它,如下所示
我对AngularJS很新,所以我可能会问完全错误的问题.我想要完成的是在单个应用程序中创建一个可重用的数据绑定类.下面用一个非常简单的例子演示了我想要完成的事情.
假设我想创建一个带有值和增量方法的计数器.我可以创建一个服务并在控制器中使用它,如下所示: angular.module("fiddle",["counter"]) .controller("MainCtrl",function($scope,counter) { $scope.counter = counter; }); angular.module("counter",[]) .service("counter",function() { this.count = 0; this.increment = function(x) { this.count += x; }; }); 然后我可以显示一个视图来添加一个计数器: <h1>Count: {{counter.count}}</h1> <button ng-click="counter.increment(1)">Add 1</button> <button ng-click="counter.increment(5)">Add 5</button> <button ng-click="counter.increment(10)">Add 10</button> 这适用于一个计数器,但如果我想在同一个控制器中有多个计数器怎么办?由于服务是单身,我不能这样做.使用Angular创建类似的东西的最佳方法是什么,因为其他服务会更复杂?谢谢! http://jsfiddle.net/jeffaudio/ExASb/
要使服务不像单身一样,您可以这样做:
angular.module("counter",function() { var aCounter = function() { this.count = 0; this.increment = function(x) { this.count += x; }; } return { getInstance: function () { return new aCounter(); } }; }); 然后从您的控制器管理您的计数器,例如: function myCtrl($scope,counter) { $scope.counter1 = counter.getInstance(); $scope.counter2 = counter.getInstance(); } http://jsfiddle.net/KLDEZ/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |