小编Joe*_*rke的帖子

为什么我在TypeScript中得到"Type'String'不能用作索引类型"错误

我有大量的js代码,它们使用了许多辅助数组,可以非常快速地访问对象.所以我尝试移植此代码并失败.很明显我还不太了解TS.

我已经找到了这个问题的答案,并找到了创建界面等建议...但这似乎有点偏离轨道.

所以看似明显的尝试:

 class Foo {
   allObjects: MyObject[];
    constructor() {
     this.allObjects = [];
   }
}
Run Code Online (Sandbox Code Playgroud)

MyObject的地方 - 简化:

 class MyObject {
     _id: String;
     public getId(): String {
        return this._id;
     }
 }
Run Code Online (Sandbox Code Playgroud)

我相信:

 myObjectInstance: MyObject;
 fooInstance.allObjects[myObjectInstance.getId()] = myObjectInstance;
Run Code Online (Sandbox Code Playgroud)

会没问题...我看到可爱的TS2342错误(索引表达式参数必须是'string','number'或'any'类型)这对我没有意义,因为getId()是'string' .这似乎不应该那么难.所以你的帮助将不胜感激......

typescript

35
推荐指数
1
解决办法
2万
查看次数

从14.10升级到Ubuntu 15.04打破mongo - 如何修复?

我昨天犯了升级到15.04的错误:-).现在我的mongod无法启动:

MongoDB shell version: 2.6.9
connecting to: test
2015-04-26T08:45:08.339-0600 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2015-04-26T08:45:08.339-0600 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

sudo服务mongod状态

? mongod.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)

接下来,我搜索了与mongodb相关的锁定文件并将其删除. - 没有帮助.接下来我做了:

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongodb start

 sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
2015-04-26T08:56:39.844-0600 [initandlisten] MongoDB starting : pid=17760 port=27017 dbpath=/var/lib/mongodb/ 64-bit host=Parke.dynu.com …
Run Code Online (Sandbox Code Playgroud)

ubuntu mongodb

12
推荐指数
2
解决办法
1万
查看次数

将颜色添加到textAngular是否有一种简单的方法可以使colorpicker在textAngular编辑器中单击时关闭?

有相当多的人询问有关向textAngular添加字体和背景颜色的问题.我对我的解决方案非常满意,所以我想我会分享这个.我还有最后一个问题:在点击编辑器时,是否有一种简单的方法可以让颜色选择器关闭?没有修改我想避免的textAngular代码?

在这个解决方案中,我使用了angular-bootstrap-colorpicker,所以我还添加了作为依赖项到我的应用程序:[...'colorpicker.module','textAngular',...].

关注https://github.com/fraywing/textAngular/wiki/Customising-The-Toolbar我在我的应用程序的配置部分:

    $provide.decorator('taOptions', ['taRegisterTool', '$delegate', function(taRegisterTool, taOptions){
      // $delegate is the taOptions we are decorating
      // register the tool with textAngular

      taRegisterTool('backgroundColor', {
        display: "<button colorpicker class='btn btn-default ng-scope' title='Background Color' type='button' colorpicker-close-on-select colorpicker-position='bottom' ng-model='backgroundColor' style='background-color: {{backgroundColor}}'><i class='fa fa-paint-brush'></i></button>",
        action: function (deferred) {
          var self = this;
          this.$editor().wrapSelection('backgroundColor', this.backgroundColor);
          if (typeof self.listener == 'undefined') {
            self.listener = self.$watch('backgroundColor', function (newValue) {
              self.$editor().wrapSelection('backColor', newValue);
            });
          }
          self.$on('colorpicker-selected', function () {
            deferred.resolve();
          });
          self.$on('colorpicker-closed', function () {
            deferred.resolve();
          }); …
Run Code Online (Sandbox Code Playgroud)

user-interface angularjs

8
推荐指数
0
解决办法
3315
查看次数

如何在Android Studio中解决意外的顶层异常

我有两个项目共享相同的aidl文件.

在第一个项目中,构建在Eclipse和Android Studio中运行完成.

在第二个项目中,构建在Eclipse中运行完成,但在Android Studio中我看到:

Error:[Tracker-PRO-Key] UNEXPECTED TOP-LEVEL EXCEPTION:
Error:[Tracker-PRO-Key] com.android.dx.util.ExceptionWithContext
Error:[Tracker-PRO-Key] at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:344)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processClass(Main.java:487)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:135)
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processOne(Main.java:422)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.run(Main.java:209)
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error:[Tracker-PRO-Key] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error:[Tracker-PRO-Key] at java.lang.reflect.Method.invoke(Method.java:606)
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:139)
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:261)
Error:[Tracker-PRO-Key] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Error:[Tracker-PRO-Key] Caused by: java.lang.NullPointerException
Error:[Tracker-PRO-Key] at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:87)
Error:[Tracker-PRO-Key] …
Run Code Online (Sandbox Code Playgroud)

android-studio

7
推荐指数
1
解决办法
1171
查看次数

Angular LifecyleHooks 以及 @ViewChild 何时有效?

我有点困惑。我以为我基本上了解了 angular 组件的生命周期,但后来我遇到了一个有趣的案例,其中组件的 @Input 未定义。

在这种情况下,我的应用程序有两个实例。给定的组件:LogoutWarning在注销挂起时显示,然后用户可以刷新登录令牌并继续。这很好用。

该实例在第一个应用程序更新登录令牌时出现,并隐藏显示LogoutWarning组件。在这个第一个应用程序中一切都很好。

第二个应用程序也显示了LogoutWarning组件,因为它检测到登录令牌将要过期并显示LogoutWarning modal,然后它注意到登录令牌已更新并调用 LogoutWarning.cancel() 以隐藏该模式。在这种情况下, this.logoutWarningModal.hide() 会爆炸,因为 this.logoutWarningModal 是UNDEFINED,即使生命周期 ngAfterViewInit() 显示 this.logoutWarningModal 已定义。

在这一点上,我感到非常惊讶。如果我只是检查 this.logoutWarningModal 是未定义的,而不是调用 this.logoutWarningModal.hide() 一切正常。但是为什么 this.logoutWarningModal 在这里未定义???

LoutWarning组件的代码很简单:

@Component({
  selector: 'logoutWarning',
  template: `
    <div bsModal #logoutWarning="bs-modal" [config]="{ show: true }" class="modal fade" tabindex="-1" role="dialog"
     aria-labelledby="new application version avaliable" aria-hidden="true" (onHidden)="hidden()">
      <div class="modal-dialog modal-sm">
        <div class="modal-content">
          <div class="modal-header">
            <div class="app_header">
              <div class="app_icon"><img src="assets/images/tracker_hi_res_512.gif"></div>
              <div class="app_name">Tracker</div>
            </div>
          </div>
          <div class="modal-body …
Run Code Online (Sandbox Code Playgroud)

lifecycle angular

7
推荐指数
1
解决办法
3241
查看次数

带有用于 https 域的 NGINX proxy_pass 的 Webpack Dev Server 原因:net::ERR_CONNECTION_CLOSED

我已经设置了一个服务器,它为前端和 nodejs 后端托管了一个“angular2-webpack-starter”项目。nginx 默认有两个 proxy_pass,用于将连接映射到服务器上的正确位置。几乎一切都按预期工作......但是代理存在一个问题,sockjs-node/info这确实让我感到惊讶。

运行时我看到:

zone.js:1960 GET https://localhost:3000/sockjs-node/info?t=1490740454197 net::ERR_CONNECTION_CLOSED
Run Code Online (Sandbox Code Playgroud)

这两个代理是:

  location ^~ /server/ {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host      $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass https://127.0.0.1:9000/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

  location ^~ / {
    #proxy_buffering    off;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host      $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:3000/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
Run Code Online (Sandbox Code Playgroud)

我已经查看了这个问题的其他几个答案,但无济于事。我尝试在前端添加 cors 的东西,这是没有意义的,这没有效果。我尝试关闭 proxy_buffering 无济于事(正如我所料)。我什至添加了“underscored_in_headers on;” 在nginx中,无济于事。

其他人使用 webpack-dev-server 来做代理,但似乎 nginx …

proxy nginx angular

4
推荐指数
1
解决办法
5316
查看次数

为什么超级测试(快速测试)返回状态301而不是200?

我有一个基于Express的宁静应用程序,我决定使用supertest进行测试。这是我对supertest的首次测试,我感到困惑。路线之一是:

/api/version
Run Code Online (Sandbox Code Playgroud)

返回版本:

export function index(req: express.Request, res: express.Response) {
   log('index of version.controller');
   let ver = { version: version.getVersion() +  ' & textAngular: v' + textAngularVersion.getTextAngularVersion() };
   res.setHeader('Content-Type', 'application/json');
   return res.status(200).json(ver);
}
Run Code Online (Sandbox Code Playgroud)

当我在Chrome的http:// localhost:9000 / api / version /中查看时,它会正常工作,我会看到:

{"version":"v0.00.000-38-gf395113 & textAngular: v1.5.16"}
Run Code Online (Sandbox Code Playgroud)

这是我所期望的。并且状态为预期的200(如果Chrome已将其缓存,则为304)。

但是,当我使用Mocha和Supertest进行测试时:

describe('GET /api/version', () => {
     it('should respond with version', (done: any) => {
       request(app.server)
        .get('/api/version')
        .expect('Content-Type', 'text/html; charset=UTF-8')
        .expect(200)
        .end((err: any, res: any) => {
           if (err) {
             return done(err);
          }
          done();
        }); …
Run Code Online (Sandbox Code Playgroud)

http express supertest

2
推荐指数
1
解决办法
659
查看次数