角度工厂注射不起作用

时间:2015-07-22 16:13:27

标签: angularjs

我试图让Angular在一个非常基础的水平上工作。但我只是不明白。我正在做所有的教程和一切。它杀了我。

以下是我正在做的事情:

1。)HTML

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
    <script src="js/app.js"></script>
    <script src="js/Controller.js"></script>
    <script src="js/friendsFactory.js"></script>


</head>
<body>
<div ng-app="friendsApp">
    <div ng-controller="friendsController">
        <h3>{{girlFriendName}}</h3>
    </div>


</div>
</body>
</html>

2。)App.js

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

3。)Controller.js

friendsApp.controller('friendsController', ['$scope','friendsFactory', function($scope, friendsFactory){

    $scope.girlFriendName = friendsFactory.girlFriend();

}]);

4.。)Friendsfactory.js

friendsApp.factory('friendsFactory',  function (){

  this.girlFriend = function(){

      var name = "Girlfriends Name";

      return name;

  }

});

我想在非常基本的水平上尝试这个,但现在我花了5个小时试图从工厂获得一个名字到控制器。 如果我手动将名称写入控制器,它将起作用,因此控制器会被调用。

有谁能告诉我我在哪里错了?

非常感谢!

2 个答案:

答案 0 :(得分:3)

修改工厂代码:

friendsApp.factory('friendsFactory',  function (){

  this.girlFriend = function(){

      var name = "Girlfriends Name";

      return name;

  }

});

要:

friendsApp.factory('friendsFactory',  function (){

  function girlFriend(){
      var name = "Girlfriends Name";
      return name;
  }

  return {
     girlFriend: girlFriend
  }
});

答案 1 :(得分:1)

您已创建工厂方法,但未将其返回。

    friendsApp.factory('friendsFactory',  function (){
        this.girlFriend = function(){
            var name = "Girlfriends Name";
            return name;
        }
        return {
           girlFriend : this.girlFriend
        }
    });