2015-10-05 108 views
0

我正在嘗試一個代碼,以便將js控制器的角度js控制器中的值添加到html頁面中,該控制器使用服務注入。在angular角色中聲明服務中的對象JS

我在服務中創建一個對象,併爲該對象添加一些屬性值。接下來我在控制器中讀取這個值。

現在我正在觀察的是服務的名稱和對象的名稱應該是相同的,只有這樣值才能正常發生,否則不會。

以下是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> 

以下是工作代碼: -

abc.js

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

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

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

以下是未使用的代碼: -

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; 
}); 

服務名稱和對象名稱是否必須相同?

回答

1

您犯了一個小錯誤。它應該是:

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

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

這是當我聲明對象與名稱號碼,這是工作正常。但是當我聲明數字它不工作。 angular.module('myApp',[]); ('number',function(){ var num = {}; num.val = 10; return num; }); angular.module('myApp')。controller('Addition',function(number){ var self = this; self.num = num.val; }); –

1

這是因爲NUM被你的函數

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

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

所有你得到不確定的是在你的控制器NUM參考。

「數字」只是您工廠的名稱。因此,上述代碼將不起作用。

您必須使用。

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

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

爲我工作..得到了問題.. ..切爾西! –