0

我的代码的哪一部分是错误的??如果它有很多错误,请不要给我 UNLIKE :D 我在 Angularjs 中很新

<script>
demoapp = angular.module('demoapp', []);
demoapp.factory('simplefactory', function ($scope) {
    //var customers = [{ name: 'Alireza', family: 'massali' }, { name: 'Ehsan', family: 'abdolahi' }, { name: 'Ali', family: 'Shirvanian'}];
    var customers ="3576324";
    //var factory = {};
    this.GetCust = function () {
       return customers;
    };


    this.PostCust = function (customer) {
        return customers;
    };
    return factory;
});



var xxx = angular.module('mmodule', []);
var conts = {}
conts.simple = function ($scope, simplefactory) {
    $scope.name = simplefactory.GetCust();
}

conts.simple1 = function ($scope) {
    $scope.name1 = "2222";
}

xxx.controller(conts);

这是HTML

<div ng-app='mmodule'>
<p ng-controller='simple'>{{name}}</p></div>
4

3 回答 3

1

您的代码不正确。在您的工厂中,您正在返回factory,这是未定义的。如果你想使用GetCust和其他功能你必须返回this

于 2013-09-29T16:16:18.620 回答
1

我可以尝试让您从正确的方向开始。您似乎正在使用 2 个模块,我认为您有理由这样做。“mmodule”模块正在尝试使用“demoapp”模块中定义的工厂。但它不知道它在哪里。所以你需要做的第一件事就是将'demoapp'模块注入'mmodule'。因此,您需要将 var xxx=angular.module.... 行更改为

var xxx=angular.module('mmodule', ['demoapp']);

现在您的工厂中定义的功能应该可用了。

你们建立工厂的方式与我建立工厂的方式不同。我会使用:

 demoapp.factory('simplefactory', function () {

   var customers ="3576324";
   //var factory = {};
    return{
     GetCust: function () {
       return customers;
     },


     PostCust: function (customer) {
       return customers;
     }
  };
});

这里有一个 plunker:http://plnkr.co/edit/WisW6f?p= preview

于 2013-09-29T16:17:36.443 回答
1

你需要的是这样的:

demoapp = angular.module('demoapp', []);
demoapp.factory('simplefactory', function () {

工厂不考虑范围

    var customers = "3576324";

    return {
        GetCust: function () {
            return customers;
        },


        PostCust: function (customer) {
            return customers;
        }
    }

您需要返回一个包含您的函数的对象

});



var xxx = angular.module('mmodule', ['demoapp']);

最重要的是在这个中注入 demoapp 模块......

var conts = {}
conts.simple = function ($scope, simplefactory) {
    $scope.name = simplefactory.GetCust();
}

conts.simple1 = function ($scope) {
    $scope.name1 = "2222";
}

xxx.controller(conts);
于 2013-09-29T17:13:16.120 回答