gpt4 book ai didi

angularjs - 可以将整个服务绑定(bind)到 Controller 范围吗?

转载 作者:行者123 更新时间:2023-12-01 00:53:01 25 4
gpt4 key购买 nike

例如这个服务:

services.factory('ElementsService', function () {

var currentElement = 'default element';

var service = {
getCurrentElement: function () {
return currentElement;
},
setCurrentElement: function (elmnt) {
currentElement = elmnt;
}
}
return service;

我经常发现从 Controller 执行以下操作很有用:
controllers.controller('ElementsCtrl', function($scope, ElementsService) {

$scope.elementsService = ElementsService;

});

为了能够在 html 中绑定(bind)服务变量,并在变量被其他 Controller 或服务更改时保持最新。像这样:
<p>The current element is : {{elementsService.getCurrentElement()}}</p>

我的问题是:这样可以吗还是我应该避免这样做?

最佳答案

当然这个概念是可以的,并且不必制作许多不同的范围变量

另一种方法是

angular.extend($scope, ElementsService );

然后在 View 中您立即可以访问从工厂返回的相同数据和方法
<button ng-click="setCurrentElement(someObj)">test</button>

关于angularjs - 可以将整个服务绑定(bind)到 Controller 范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com