如何在我的代码中使用此AngularJS服务?

时间:2015-07-08 21:08:50

标签: angularjs

这是我服务的代码。它几乎完全取自第一个答案here.

var myApp = angular.module('myApp', ['ngRoute']);

       myApp.service('sharedProperties',function(){
           var property = "First";

           return{
               getProperty:function(){
                   return property;
               },
               setProperty:function(value){
                   property = value;
               }
           };
       });

Here is the JSFiddle完整显示我的代码但无效。

我得到的错误是:

  

“错误:未定义sharedProperties

对于警报所在的行。我只是使用警报作为在我进一步扩展代码之前显示服务正常工作的一个例子。

任何人都知道为什么这个简单的服务示例不起作用?我彻底检查了代码,以确保没有拼写错误或类似的任何蠢事。

我链接的答案有一个使用旧版AngularJS的JSFIDDLE。我能够用我的JSFIDDLE中使用的Angular版本替换它,它仍然可以正常工作,因此它似乎不是版本问题。

2 个答案:

答案 0 :(得分:1)

您需要将服务注入您的控制器:

myApp.controller('mainController', function($scope, sharedProperties) {

(缩小安全语法)

myApp.controller('mainController', ["$scope", "sharedProperties", function($scope, sharedProperties) {

工作小提琴:http://jsfiddle.net/b2fCE/733/

答案 1 :(得分:0)

您需要在控制器中注入服务。

这是小提琴https://jsfiddle.net/b2fCE/732/

myApp.controller('mainController', function($scope, sharedProperties) {
        // create a message to display in our view
        $scope.message = 'Everyone come and see how good I look!';

        alert(sharedProperties.getProperty());
    });