让我说我想在angularjs中重用一个返回特定值的函数,但我想在应用程序的其他部分控制器中调用它,所以我不会在其他地方重写它(干),我会把它放在哪里在angularjs应用程序中的功能?我会为此为工厂服务吗?
假设我有两个控制器,在这两个控制器中,我想调用函数foo()
,当我通过它传递一个变量时,它会返回一个特定的数字。我在哪里将函数foo()
放在我的角度结构中?
答案 0 :(得分:0)
使用Angular 1.x,您需要创建override var currentSpeed: Double {
set {
super.cuc = 90
}
get {
return super.cuc
}
}
print(car.cuc)
以使某些内容可重用或像实用程序一样。您可以以与service
服务相似的方式将此注入到您想要的控制器中。取自AngularJS website,服务定义为 -
AngularJS服务是连接在一起的可替代对象 使用依赖注入(DI)。您可以使用服务来组织和 在您的应用中共享代码。
你可以在这里找到一个非常简单的服务 - an example by w3schools
答案 1 :(得分:0)
AngularJS有三个非常相似的概念服务,工厂和提供商。每个都可以用于使用DRY模式暴露api。大多数情况下,使用服务,工厂或提供商是一个偏好问题。我倾向于喜欢使用工厂。
这是一个简单示例的jsfiddle,我使用工厂来公开api:https://jsfiddle.net/kaxtxL1h/
var app = angular
.module("app", [])
.factory("myapi", function() {
var api = {
foo: function (bar) {
return bar + "_baz"
}
};
//now api is exposed to whoever injects myapi
return api;
})
.controller("ControllerOne", function($scope, myapi) {
$scope.value = myapi.foo("one");
})
.controller("ControllerTwo", function($scope, myapi) {
$scope.value = myapi.foo("two");
});
以下是了解服务,工厂和提供商之间相同点和不同点的好参考:AngularJS: Service vs provider vs factory