【问题标题】:AngularJS: Use DTO modelsAngularJS:使用 DTO 模型
【发布时间】:2018-01-25 11:04:53
【问题描述】:

有没有办法拥有 DTO。

所以在我的后端部分,我有一个非常清晰的域,例如客户。

class Client {
    protected $firstName;
    protected $lastName;
}

实际上它是一个包含特定属性的类。我想在我的前端部分有类似的东西。我想确定函数中的对象是Client 的实例,我可以参考特定的客户端属性。

另一个问题 - 组织 AngularJS (1.5.9) 应用程序是否合适?它会降低应用程序的性能吗?

附:我想在我的前端部分得到这样的东西

function someFunc(client) {
    if (!(client instanceof Client)) {
        // handle error
    }
// here I can refer to client.firstName or client.lastName and not get undefined, as long as it is a required Client properties
}

谢谢!

【问题讨论】:

    标签: javascript angularjs object dto data-transfer-objects


    【解决方案1】:

    Javascript is an untyped language. 简单地说,你无法实现你想要的。

    一种解决方法是在您的 Client 类中添加一个方法 getType() 并返回一个 Enum 并在 Angular 中检查该字段。

    如果您想要一个“类型化”的 JS 版本,请检查 TypeScript

    【讨论】:

      【解决方案2】:

      从 ES6 开始,您可以使用类并执行类似的操作

      var Animal = {
        speak() {
          console.log(this.name + ' makes a noise.');
        }
      };
      
      class Dog {
        constructor(name) {
          this.name = name;
        }
      }
      
      // If you do not do this you will get a TypeError when you invoke speak
      Object.setPrototypeOf(Dog.prototype, Animal);
      
      var d = new Dog('Mitzie');
      d.speak(); // Mitzie makes a noise.
      

      查看 MDN 文档了解更多详情, MDN - Classes, MDN - instanceof

      【讨论】:

        猜你喜欢
        • 2015-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 2012-01-22
        • 2011-01-11
        • 1970-01-01
        相关资源
        最近更新 更多