【发布时间】:2016-05-29 05:56:25
【问题描述】:
好吧,我在澄清我对 Angular Servcies 和工厂的疑虑时,偶然发现了一个根据返回类型对其进行描述的教程。
目前我有以下内容:
angular.module("Training").service("Service", tryDis);
angular.module("Training").factory("Factory", tryDis);
function tryDis(){
console.log("trying..");
return "tried";
}
然后我有:
angular.module("Training").controller("Ctrl1", function($scope,Service, Factory){
$scope.serviceData = Service;
$scope.factoryData = Factory;
});
正如教程所说,服务返回整个函数本身,而工厂返回字符串“tried”。这很好。
现在我的意思是,如果我返回了一个函数类型,并且由于它也不接受任何参数,我仍然会以某种方式正确执行该函数。所以不知何故,我也从 Service 中得到了“尝试”。
参考JS function.prototype.call(),我试过了
angular.module("Training").controller("Ctrl1", function($scope,Service, Factory){
$scope.serviceData = this.call(Service);//also call(Service)
$scope.factoryData = Factory;
});
这似乎不起作用。 在上述情况下,如何获取字符串“已尝试”。??
注意:我在编写服务时非常熟悉“this”的使用。但在这里我的问题不仅仅是关于 Angular 中的服务,而是关于在 JS 中调用返回的函数
【问题讨论】:
标签: javascript angularjs function service call