我将异步数据从父组件传递到子组件.并且子组件需要知道数据的长度才能执行某些操作.
问题是子组件不能使用'Oninit'挂钩来工作,因为此时数据不可用.那我该怎么做?
父组件代码如下所示:
@Component({
moduleId: module.id,
selector: 'parent',
template: `<div>
<child [items]="items | async">
</div>`
})
export class Parent implements OnInit {
items: Items[];
constructor(
private itemService: ItemService,
private router: Router
) { }
ngOnInit() {
this.itemService.getItemss()
.subscribe(
items => this.items = items,
error => this.errorMessage = <any>error
);
}
}
Run Code Online (Sandbox Code Playgroud)
子组件看起来像:
@Component({
moduleId: module.id,
selector: 'child',
template: `<div>
<div *ngFor="let itemChunk of itemChunks"></div>
content here
</div>`
})
export class child implements OnInit{
@Input() items: Items[];
itemChunks: Items[][];
ngOnInit() { …Run Code Online (Sandbox Code Playgroud) 我和我的同事就这段代码进行了辩论:
var y = null;
if (x.parent != null)
y = x.parent.somefield;
Run Code Online (Sandbox Code Playgroud)
我的观点是,在代码所在的位置,x.parent不应该是null.当它为空时,我们有一个严重的问题,我想知道它!因此,不应该存在空检查,并且发生下游异常.
我的同事说这是防御性编程.并且null检查确保代码不会破坏应用程序.
我的问题是,这是防御性编程吗?还是一个不好的做法?
注意:重点不在于谁.我试图从这个例子中学习.
我知道汇编版本的格式是:
<major version>.<minor version>.<build number>.<revision>
Run Code Online (Sandbox Code Playgroud)
有没有办法让版本号成为当前日期?
例如,如果我今天编译构建版本,版本号应如下所示:
2016.02.11.xxxxx
Run Code Online (Sandbox Code Playgroud)
如果将程序集版本设置为1.0.0,则通常会获得xxxxx.*.
我用Google搜索,但没有找到答案(甚至不是问题).
样式需要向后兼容。
尝试谷歌搜索-webkit-gradient语法并自己弄清楚,但找不到文档......
那么,-webkit-gradient这个 CSS的等价物是什么:
background: -webkit-linear-gradient(left, #E0E0E0 0%, #E0E0E0 10%, rgba(255, 255, 255, 0) 11%, rgba(255, 255, 255, 0) 100%),
-webkit-linear-gradient(top, #F9FCF6 0%, #BBE6BF 100%); /* Chrome10+,Safari5.1+ */
Run Code Online (Sandbox Code Playgroud) 不知道我标题有没有说清楚。我想要的是这样的:
有一个父类:
public class parent
....
Run Code Online (Sandbox Code Playgroud)
还有一个儿童班:
public class child : parent
....
Run Code Online (Sandbox Code Playgroud)
现在我需要一个可以返回以下任一结果的方法:
List<(what goes here?)> GetSomeValue(string id, boolean needChild) {
......
if (needChild)
return BuildChildResult(id);
else
return BuildParentResult(id);
}
Run Code Online (Sandbox Code Playgroud)
这是可以做的事情吗?
括号里应该写什么?
有一个预定义的营销模板,模板的相关部分如下所示:
嗨 [%first_name | 亲爱的粉丝%],xxxxxx
sendgrid 模板变量替换有很多不同的语法,这非常令人困惑。例如,我见过 [%variable_name%]、{{variable_name}}、-variable_name- 和 <%variable_name%>
如何将替换/个性化/模板数据(只是列出我见过的似乎指代同一事物的不同名称)从 C# 客户端传递到模板?