我在我的Xcode项目文件中的Point.swift中定义了这样的结构:
struct Point {
var x: Int
var y: Int
}
Run Code Online (Sandbox Code Playgroud)
如果我试图从另一个文件初始化Point结构,Xcode不会自动完成成员初始化程序.即使我已经像一些朋友建议的那样重新启动了机器.

但是,如果我在同一个文件或游乐场中定义初始化新实例,则自动完成工作正常.

任何想法如何解决这个自动完成问题?
我想将来自customers表的init数据加入到项目列表中.
模型是这样的:
项目
顾客
你有一个例子,我如何使用angularfire2从angular2组件做到这一点?
我的控制器看起来像这样:
import { Component, OnInit } from '@angular/core';
import { Project } from '../project';
import { Router } from '@angular/router';
import { FirebaseAuth } from 'angularfire2';
import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2';
import { Observable } from 'rxjs';
@Component({
moduleId: module.id,
selector: 'app-projects',
templateUrl: 'projects.component.html',
styleUrls: ['projects.component.css']
})
export class ProjectsComponent implements OnInit {
projects: FirebaseListObservable<any[]>;
customers: FirebaseListObservable<any[]>;
projectName: string;
constructor(
private router: Router,
private af: AngularFire
) …Run Code Online (Sandbox Code Playgroud) 如果没有找到数据,angular.io上的示例中的resolve方法返回一个promise或将应用程序导航到特定路由.
resolve(route: ActivatedRouteSnapshot): Promise<any> {
let id = +route.params['id'];
return this.cs.getCrisis(id).then(crisis => {
if (crisis) {
return crisis;
} else { // id not found
this.router.navigate(['/crisis-center']);
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
假设,getCrisis函数返回一个observable:
resolve(route: ActivatedRouteSnapshot): Observable<any> {
let id = +route.params['id'];
return this.cs.getCrisis(id).take(1)
}
Run Code Online (Sandbox Code Playgroud)
在可观察的情况下.我怎么知道,没有任何回报,因为我正在处理流?在resolve函数中处理这种情况的最佳模式是什么?
我知道,我可以从组件中使用router.navigate方法,但是想要正确使用路由器解析防护.
我想在大屏幕上打开md-sidenav并在移动设备上关闭它.在我的应用程序中执行此操作的正确方法是什么?
有没有可能在angular2组件内查询媒体?