Angular-styleguide: 服务指南不起作用

创建于 2016-07-25  ·  5评论  ·  资料来源: johnpapa/angular-styleguide

我不确定 angular 团队是否对服务和工厂有不同的想法。 但是服务部分中提到的代码和想法并没有加起来,甚至在 angular 的网站上也没有。 如果服务注册将构造函数作为第二个参数,并且假设它被作为构造函数调用,使用new关键字,那么为什么我不能将其视为真正的构造函数传入参数呢?

服务

(function () {
    angular
        .module("App")
        .service("Person", Person);

    //angular wants my parameters to be injectables.
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
})();

控制器

(function () {
    angular
        .module("App")
        .controller("DemoController", DemoController);

    DemoController.$inject = ["Person"];

    function DemoController(Person) {
        var a = new Person("rafael", 22);// ERROR

        var Demo = this;

        Demo.title = "Demo";
    }
})();
question

最有用的评论

所有5条评论

使用工厂代替服务
Angular 是工厂和服务的单例......

(function() {

    angular
        .module('App')
        .factory('servicePerson', servicePerson);

    function servicePerson() {
        function Person(name, age) {
            this.name = name;
            this.age = age;
        }

        Person.prototype.alert = function() {
          alert('Name:' + this.name +' Age:'+ this.age);
        }

        var service = {
            newPerson : newPerson
        }

        return service;

        function newPerson(name, age){
            return new Person(name, age); 
        }
    }
}) ();

在控制器中

(function() {

    angular
        .module('App')
        .controller('DemoController', DemoController);

    DemoController.$inject = ['servicePerson'];

    function DemoController(servicePerson) {
        var a =  servicePerson.newPerson('rafael', 22);
        a.alert();
        var Demo = this;

        Demo.title = 'Demo';
    }
}) ();

那不是正确的朋友。

@mroutput ,是的,但最好的方法是什么?

@sava-vidakovic。 对我也是

这就是他们的工作方式:)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Foxandxss picture Foxandxss  ·  13评论

samithaf picture samithaf  ·  12评论

TradeArcher2020 picture TradeArcher2020  ·  4评论

kdekooter picture kdekooter  ·  8评论

andreshg112 picture andreshg112  ·  3评论