Javascript AngularJS:将变量传递到服务中
我创建了一个服务,它有一个简单计算的方法。它取一个值并将其平方。但是,我得到一个错误,说平方是未定义的,所以我猜我传递的值不正确 jsfid:Javascript AngularJS:将变量传递到服务中,javascript,angularjs,Javascript,Angularjs,我创建了一个服务,它有一个简单计算的方法。它取一个值并将其平方。但是,我得到一个错误,说平方是未定义的,所以我猜我传递的值不正确 jsfid: var myApp=angular.module('myApp',[]); //指令('myDirective',function(){}); //工厂('myService',function(){}); /*函数MyCtrl($scope){ $scope.name='Superhero'; } */ myApp.controller('MyCtr
var myApp=angular.module('myApp',[]);
//指令('myDirective',function(){});
//工厂('myService',function(){});
/*函数MyCtrl($scope){
$scope.name='Superhero';
} */
myApp.controller('MyCtrl',['$scope',函数($scope,CalcService){
var cheese=CalcService.平方(2);
$scope.value=奶酪;
}]);
myApp.service('CalcService',函数(x){
this.square=函数(x){
变量y=x*x;
返回y;
}
});代码>
你好,{{value}}!
您的服务应该是:
myApp.service('CalcService', function(){
return {
square: function (x) {
var y = x*x;
return y;
}
}});
您应该在控制器中注入服务。您的服务应该类似于:
myApp.service('CalcService', function(){
return {
square: function (x) {
var y = x*x;
return y;
}
}});
您应该在控制器中注入服务。我认为您没有以正确的方式将服务注入控制器。请检查代码段
你好,{{value}}!
var myApp=angular.module('myApp',[]);
//指令('myDirective',function(){});
//工厂('myService',function(){});
/*函数MyCtrl($scope){
$scope.name='Superhero';
} */
myApp.service('CalcService',function()){
this.square=函数(x){
变量y=x*x;
返回y;
}
});
myApp.controller('MyCtrl',['$scope','CalcService',函数($scope,CalcService){
var cheese=CalcService.平方(2);
$scope.value=奶酪;
}]);
我认为您没有以正确的方式将服务注入控制器。请检查代码段
你好,{{value}}!
var myApp=angular.module('myApp',[]);
//指令('myDirective',function(){});
//工厂('myService',function(){});
/*函数MyCtrl($scope){
$scope.name='Superhero';
} */
myApp.service('CalcService',function()){
this.square=函数(x){
变量y=x*x;
返回y;
}
});
myApp.controller('MyCtrl',['$scope','CalcService',函数($scope,CalcService){
var cheese=CalcService.平方(2);
$scope.value=奶酪;
}]);
请参见此处,您错过了CalcService
控制器初始化中的注入:
myApp.controller('MyCtrl', ['$scope', 'CalcService', function($scope, CalcService) {
var cheese = CalcService.square(2);
$scope.value = cheese;
}]);
请参见此处,您错过了CalcService
inject-in-controller初始化:
myApp.controller('MyCtrl', ['$scope', 'CalcService', function($scope, CalcService) {
var cheese = CalcService.square(2);
$scope.value = cheese;
}]);
您没有插入“CalcService”
myApp.controller('MyCtrl',['$scope','CalcService',函数($scope,CalcService){
}]); 您错过了注入“CalcService”
myApp.controller('MyCtrl',['$scope','CalcService',函数($scope,CalcService){
}]); 在控制器中,您没有注入CalcService,而是将参数x
添加到服务函数中。你应该移除它。检查这个更新的JSFIDLE:啊,好的,语法错误,所以注入发生在引号的开头,为什么需要把它放在函数param中呢?这是为了文件缩小。查看此帖子:。您可以像myApp.controller('MyCtrl',function($scope,CalcService){}那样编写它
但是当你缩小文件时,这将不起作用。在你的控制器中,你没有注入CalcService,而是将参数x
添加到服务函数中。你应该删除它。检查这个更新的jsFiddle:啊,好的,语法错误,所以注入是以引号开始的,为什么需要将它放在函数中这个参数是用来缩小文件的。检查这个帖子:。你可以像myApp.controller('MyCtrl',function($scope,CalcService){}
那样编写它,但是当你缩小文件时,它就不起作用了。