2017-04-06 49 views
0

使用value recipe時,我沒有收到預期的消息。我在括號裏練習Angular JS。在使用Value Recipe時,我沒有得到正確的輸出

我得到輸出{{message}},但我期待"hai services are working!!"

請分享我要去的地方錯了。

HTML代碼:Injector.html

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Practicing Angular JS</title> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script> 
     <script src="Injector.js"></script> <!-- Injector module file name --> 

    </head> 


<body ng-app="injectormodule"> <!-- root module--> 


<div ng-controller="controllerInjector"> 
    {{message}} 
    <!-- controller name--> 

    </div> 


    </body> 

</html> 

控制器:Injector.js

var app = angular.module("injectormodule", ["servicemodule"])//name of service is servicemodule 
    .controller("controllerInjector", ["$scope", "message", function($scope, message){ 
     $scope.message = message; 
}]); 

服務:(價值配方)

var myapp = angular.module("servicemodule", []) 
    .value("message", "hai services are working!!"); 
+0

您應該將服務注入控制器而不是模塊中。那麼,看到這不僅僅是一種價值。而且,它也是一樣的,你將它注入到你想要使用它的控制器中。 –

+0

我嘗試了下面的內容,但是我仍然將{{message}}作爲輸出。 angular.module(「injectormodule」,[])//服務名稱爲servicemodule .controller(「controllerInjector」,[「$ scope」,「message」「servicemodule」function($ scope,message,servicemodule){ $ scope.message = message; }]); – Sourabh

回答

0

你需要注入你的servicecontroller並需要創建相同的模塊。 請參閱此示例工作fiddle它們使用服務方法獲取文本。

見其他撥弄鏈接也評論

+0

如何將服務注入控制器?如何創建相同的模塊?以下是我的代碼,我正在做對嗎? angular.module(「injectormodule」,[「servicemodule」])//服務名稱是servicemodule .controller(「controllerInjector」,[「$ scope」,「message」,function($ scope,message){ $ scope .message = message; }]); angular.module(「injectormodule」,[「servicemodule」])//服務名稱是servicemodule .controller(「servicemodule」,[「$ scope」,「message」,function($ scope,message){ $ scope.message = message; }]); – Sourabh

+0

@Sourabh:在答案中看到附帶的小提琴示例。 – anoop

+0

我改變了Injector.js,像下面這樣,但是我仍然得到與{{message}}相同的輸出。小提琴的例子令人困惑,我不理解它。 angular.module(「injectormodule」,[])//服務名稱爲servicemodule .controller(「controllerInjector」,[「$ scope」,「message」「servicemodule」function($ scope,message,servicemodule){ $ scope.message = message; }]); – Sourabh

0

你必須定義你的servicemoduleinjectormodule,否則它的創建將失敗之前(因爲無法找到servicemodule依賴)。

由於injectormodule創建失敗,因此ng-app="injectormodule"也無法在DOM上引導Angular,因此不會像雙括號({{ message }})那樣解釋事情。

這是一個工作codepen

相關問題