首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"TypeError:启动angular2-meteor项目时无法读取null的属性'getLocation‘“

"TypeError:启动angular2-meteor项目时无法读取null的属性'getLocation‘“
EN

Stack Overflow用户
提问于 2016-05-10 21:53:28
回答 2查看 866关注 0票数 2

我最近一直在玩angular2-meteor的typescript,我已经创建了几个项目。

我之前遇到过这个问题,为了解决这个问题,我删除并重新安装了node_modules和meteor来解决这个问题。

由于这个问题再次出现,我把这个问题贴出来,而不是重新安装所有的东西,看看是否有人能给我一些关于这个错误的见解。

一般来说,我创建了一个angular2-meteor项目,如http://www.angular-meteor.com/tutorials/socially/angular2/bootstrapping所述

目前,这个应用程序非常基础。

我在客户端目录中有一个主app.ts,其中包含以下代码:

代码语言:javascript
复制
import 'reflect-metadata';
import 'zone.js/dist/zone';
import {Component,provide} from '@angular/core';
import {APP_BASE_HREF} from '@angular/common';
import {bootstrap} from 'angular2-meteor-auto-bootstrap';
import {ROUTER_PROVIDERS, ROUTER_DIRECTIVES, Routes} from '@angular/router';

import {MdToolbar} from '@angular2-material/toolbar';

import {Welcome} from './imports/pages/welcome/welcome';
import {Statistics} from './imports/pages/statistics/statistics';


@Component({
   selector: 'app',
   templateUrl: 'client/app.html',
   directives: [ROUTER_DIRECTIVES,MdToolbar],
   providers: [ROUTER_PROVIDERS,provide(APP_BASE_HREF, { useValue: '/' })]
})
@Routes([
 { path: '/', component: Welcome },
 {path: '/statistics',component:Statistics}  
])
class BingoDriveStatisticsApp {

}

bootstrap(BingoDriveStatisticsApp);

如你所见,我有两个视图组件,'Welcome‘和'Statistics’。我现在也使用angular2-material作为工具栏。

视图组件很大程度上包含指向空html文件的templateUrl。

示例: welcome.ts

代码语言:javascript
复制
import {Component} from '@angular/core';

@Component({
 templateUrl: '/imports/pages/welcome/welcome.html'
})
export class Welcome {

}

我在客户端目录中的主index.html文件包含:

代码语言:javascript
复制
<body><app></app></body>

app.html包含:

代码语言:javascript
复制
<md-toolbar [color]="primary">
    <span>BingoDrive Statistics</span>&nbsp;
    <a [routerLink]="['/']">Welcome</a>
    <a [routerLink]="['/statistics']">Statistics</a>
</md-toolbar>
<router-outlet></router-outlet>

再一次..。我不认为这个错误与我的代码有任何关系,因为它以前在其他项目中发生过。

这是我的package.json:

代码语言:javascript
复制
{
  "name": "bingodrive-statistics",
  "private": true,
  "scripts": {
    "start": "meteor run"
  },
  "dependencies": {
    "@angular/common": "^2.0.0-rc.1",
    "@angular/compiler": "^2.0.0-rc.1",
    "@angular/core": "^2.0.0-rc.1",
    "@angular/platform-browser": "^2.0.0-rc.1",
    "@angular/router": "^2.0.0-rc.1",
    "@angular2-material/core": "^2.0.0-alpha.4",
    "@angular2-material/toolbar": "^2.0.0-alpha.4",
    "angular2-meteor": "^0.5.5",
    "angular2-meteor-auto-bootstrap": "^0.5.5",
    "es6-shim": "^0.35.0",
    "meteor-node-stubs": "^0.2.3",
    "reflect-metadata": "=0.1.2",
    "rxjs": "=5.0.0-beta.6",
    "zone.js": "^0.6.12"
  }
}

我的.meteor/packages文件包含以下内容:

代码语言:javascript
复制
meteor-base             # Packages every Meteor app needs to have
mobile-experience       # Packages for a great mobile UX
mongo                   # The database Meteor supports right now
reactive-var            # Reactive variable for tracker
jquery                  # Helpful client-side library
tracker                 # Meteor's client-side reactive programming library

standard-minifier-css   # CSS minifier run for production mode
standard-minifier-js    # JS minifier run for production mode
es5-shim                # ECMAScript 5 compatibility for older browsers.
ecmascript              # Enable ECMAScript2015+ syntax in app code

angular2-compilers
barbatus:angular2-runtime
accounts-password

在这一切之后..。错误消息本身!:)

它是重复的,而且非常长,但主要的例外是:

代码语言:javascript
复制
EXCEPTION: Error in :0:0
VM2668:27 ORIGINAL EXCEPTION: TypeError: Cannot read property 'getLocation' of null
VM2668:27 ORIGINAL STACKTRACE:
VM2668:27 TypeError: Cannot read property 'getLocation' of null
at BrowserPlatformLocation._init (browser_platform_location.js:19)
at new BrowserPlatformLocation (browser_platform_location.js:14)
at DebugAppView.Object.defineProperty.get (BingoDriveStatisticsApp_Host.template.js:35)
at DebugAppView.Object.defineProperty.get (BingoDriveStatisticsApp_Host.template.js:47)
at DebugAppView.Object.defineProperty.get (BingoDriveStatisticsApp_Host.template.js:53)
at DebugAppView.Object.defineProperty.get (BingoDriveStatisticsApp_Host.template.js:59)
at DebugAppView._View_BingoDriveStatisticsApp_Host0.injectorGetInternal (BingoDriveStatisticsApp_Host.template.js:82)
at DebugAppView.AppView.injectorGet (view.js:96)
at DebugAppView.injectorGet (view.js:269)
at ElementInjector.get (element_injector.js:20)
VM2668:27 ERROR CONTEXT:
VM2668:27 
DebugContext {_view: _View_BingoDriveStatisticsApp_Host0, _nodeIndex: 0, _tplRow: 0, _tplCol: 0}

知道是怎么回事吗?

更新

我将项目备份到另一个目录,然后删除node_modules并执行meteor npm install --save。之后,应用程序就可以正常工作了。所以..。有些东西破坏了应用程序,通过删除node_modules并重新创建它,我解决了这个问题。

所以..。我讨厌每次开始一个新项目时都这么做。

任何关于这个问题的信息都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2016-05-23 14:13:52

尝试将dev依赖项从"@angular/platform-browser":"^2.0.0-rc.1“更改为"angular2-meteor-auto-bootstrap":"^0.5.5",

票数 0
EN

Stack Overflow用户

发布于 2016-05-25 12:25:01

仅通过更改reflect-metadata和rxjs的package.json解决了路由问题。我们不应该使用最新版本的reflect (0.1.3)。“反射元数据”:"=0.1.2","rxjs":"=5.0.0-beta.6",

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37140593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档