小编Mih*_*anu的帖子

Angular中ngShow和ngHide的等价物是什么?

我有一些元素,我想在某些条件下可见.

在AngularJS中我会写

<div ng-show="myVar">stuff</div>
Run Code Online (Sandbox Code Playgroud)

我怎么能在Angular中做到这一点?

angular-template angular-components angular

508
推荐指数
11
解决办法
51万
查看次数

如何在 Javascript 中同时拥有静态方法和实例方法

我在 PHP 中有这样的设计(类似于 Eloquent ORM):

class User {
    private $id;
    private $name;

    public __constructor($id, $name) {
        $this->id = $id;
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }

    static function getUser($id) {
        //get data from database
        return new User($id, 'Adam');
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

$user = User::getUser(1);
Run Code Online (Sandbox Code Playgroud)

现在,我想用 Javascript 来做这件事。我到目前为止:

var User = function(id, name) {
    this.id = id;
    this.name = name;
}

User.prototype.getName = function() {
    return this.name;
}
Run Code Online (Sandbox Code Playgroud)

如何添加静态函数?

我如何调用它才能返回实例化对象?

这个设计模式有名字吗?


更新:

我的问题的简短回答是:

User.getUser = function(id) { …
Run Code Online (Sandbox Code Playgroud)

javascript php oop

5
推荐指数
1
解决办法
175
查看次数

NgSwitch或ComponentFactoryResolver?

我正在编写一个列出一些用户并在单击用户时显示信息页面的应用程序。用户属于不同类型(大约20种),每种用户类型的详细信息页面在布局和功能上都不同。

我有一个主要DetailsComponent和20的特定组件(Type1DetailsComponentType2DetailsComponent等)必须在主内被显示DetailsComponent

我想到了两种实现方法:

  1. 使用NgSwitchDetailsComponent选择特定的组件
  2. 使用ComponentFactoryResolverViewContainerRef创建所需的特定组件并将其显示在内部DetailsComponent

第一种方法要求SpecificDetailsComponent在中列出所有NgSwitch,从而降低了可伸缩性。

第二种方法似乎更好,但有一些缺点:

  • 需要一个目标元素来放置动态创建的组件。新组件无法替换目标元素,但会放置在它之后。看起来很混乱。
  • 创建组件时,Angular不会自动设置@Input和@Output。

我可以做些什么来改善第二种方法吗?

有没有更好的方法可以实现目标?

angular

5
推荐指数
1
解决办法
249
查看次数