我有一些元素,我想在某些条件下可见.
在AngularJS中我会写
<div ng-show="myVar">stuff</div>
Run Code Online (Sandbox Code Playgroud)
我怎么能在Angular中做到这一点?
我在 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) 我正在编写一个列出一些用户并在单击用户时显示信息页面的应用程序。用户属于不同类型(大约20种),每种用户类型的详细信息页面在布局和功能上都不同。
我有一个主要DetailsComponent
和20的特定组件(Type1DetailsComponent
,Type2DetailsComponent
等)必须在主内被显示DetailsComponent
。
我想到了两种实现方法:
NgSwitch
在DetailsComponent
选择特定的组件ComponentFactoryResolver
和ViewContainerRef
创建所需的特定组件并将其显示在内部DetailsComponent
第一种方法要求SpecificDetailsComponent
在中列出所有NgSwitch
,从而降低了可伸缩性。
第二种方法似乎更好,但有一些缺点:
我可以做些什么来改善第二种方法吗?
有没有更好的方法可以实现目标?