Angularjs 在angular JS中声明服务中的对象

Angularjs 在angular JS中声明服务中的对象,angularjs,angularjs-service,angularjs-controller,Angularjs,Angularjs Service,Angularjs Controller,我试着用一段代码将AngularJS控制器中的值放入html页面,该控制器注入了一个服务 我在服务中创建了一个对象,并将一些值作为属性添加到此对象。接下来,我在控制器中读取该值 现在我观察到的是,服务的名称和对象的名称应该是相同的,只有这样,值才会正确出现,否则就不会 以下是HTML代码:- <html> <head> <title>AngularJS Services</title> <script type="te

我试着用一段代码将AngularJS控制器中的值放入html页面,该控制器注入了一个服务

我在服务中创建了一个对象,并将一些值作为属性添加到此对象。接下来,我在控制器中读取该值

现在我观察到的是,服务的名称和对象的名称应该是相同的,只有这样,值才会正确出现,否则就不会

以下是HTML代码:-

<html>
  <head>
     <title>AngularJS Services</title>
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.min.js"></script>
     <script type="text/javascript" src="abc.js"></script>
  </head>
  <body ng-app="myApp">
  <div ng-controller="Addition as add">
    <p>{{ add.num }}</p>
    </div>
  </body>
  </html>
以下是不起作用的代码:-

angular.module('myApp',[]);
angular.module('myApp').factory('number',function(){
var num={};
num.val=10;
return num;
});

angular.module('myApp').controller('Addition',function(number){

var self=this;
self.num=num.val;
});

服务名称和对象名称必须相同吗?

您犯了一个小错误。应该是:

angular.module('myApp').controller('Addition',function(number){

var self=this;
self.num=number.val;
});

这是因为num在函数中未定义

angular.module('myApp')
.controller('Addition',function( number ){

    var self=this;
        self.num = num.val;
});
您得到的只是对控制器中num的引用

“number”只是您工厂的名称。因此,上述代码将不起作用

你必须使用

angular.module('myApp')
.controller('Addition',function(number){

    var self=this;
    self.num = number.val;
});

这就是我声明名为number的对象的时候,它工作正常。但当我声明num时,它不起作用。角度模块('myApp',[]);angular.module('myApp').factory('number',function(){var num={};num.val=10;return num;});angular.module('myApp').controller('Addition',function(number){var self=this;self.num=num.val;});
angular.module('myApp')
.controller('Addition',function(number){

    var self=this;
    self.num = number.val;
});