小编Mat*_*nis的帖子

如何在外部单击时关闭Angular-bootstrap popover

当我popover点击弹出窗口外的任何地方时,我试图关闭我的Angular-bootstrap .根据这个问题的答案,现在可以通过利用新popover-is-open属性来实现(在版本0.13.4中):在单击外部时隐藏Angular UI Bootstrap popover

目前我的HTML看起来像这样:

<div
  ng-click="level.openTogglePopover()"
  popover-template="level.changeLevelTemplate"
  popover-trigger="none"
  popover-placement="right"
  popover-is-open="level.togglePopover">
  <button class="btn btn-default btn-xs" type="button">
    <span class="glyphicon glyphicon-sort"></span>
  </button>
</div>
Run Code Online (Sandbox Code Playgroud)

......和我的相关控制器代码:

vm.togglePopover = false;

vm.openTogglePopover = function() {
  vm.togglePopover = !vm.togglePopover;
};
Run Code Online (Sandbox Code Playgroud)

这对于在单击上面引用的按钮时打开/关闭弹出窗口非常有用.我的问题是,当点击弹出窗口外的任何地方时,我如何扩展此功能以关闭弹出窗口?我如何设置事件处理来完成此任务?

javascript twitter-bootstrap angularjs angular-ui-bootstrap angular-bootstrap

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

在Angular指令中使用$ filter

我已经构建了一个Angular指令来显示D3可视化.我在y轴上$filtertickFormat函数中使用如下:

ySalesAxis = d3.svg.axis()
  .orient('left')
  .ticks(6)
  .scale(ySalesScale)
  .tickFormat(function(d) {
    return $filter('formatSalesValue')(d.value, 'USD');
  });
Run Code Online (Sandbox Code Playgroud)

我看到的问题是,当页面首次加载时,这些刻度标签都不会出现.确实,如果我console.log($filter('formatSalesValue')(d.value, 'USD'))得到6 undefined(因为我的ticks财产设置为6).但是,一旦我执行操作,例如在画笔过滤器内单击,标签标签就会显示格式正确.

在此输入图像描述

我的formatSalesValue过滤器调用服务(异步操作),因为有许多货币循环进出系统,我从数据库中检索的详细信息.我确定这是我的tick标签未定义的原因.我该怎么做才能确保在页面加载后立即显示这些值?注意:我试图tickFormat在调用中包装我的函数scope.$apply但是我收到digest already in progress错误.

javascript d3.js angularjs

16
推荐指数
1
解决办法
386
查看次数

推送到阵列内部形式时失去双向绑定(Angular 2)

我正在使用Angular 2构建一个基本的CRUD应用程序.其中一个表单字段是一系列成分.我有一个addIngredient方法,将一个新的推Ingredient送到我的ingredients数组.一旦我单击触发此方法的按钮,双向绑定就会丢失.查看诊断数据时,一切看起来都是正确的,但数据从表单UI中丢失(请参阅下面的gif):

在此输入图像描述

相关HTML:

<div *ngFor="let ingredient of newRecipe.ingredients; let i = index; let f = first; let l = last">
  <md-input type="text" id="ingredientName" name="ingredientName" [(ngModel)]="ingredient.name" placeholder="ingredient" required></md-input>
  <md-input type="text" id="ingredientAmount" name="ingredientAmount" [(ngModel)]="ingredient.amount" placeholder="amount" required></md-input>
  <select id="ingredientMeasurement" name="ingredientMeasurement" [(ngModel)]="ingredient.measurement" required>
    <option *ngFor="let measurement of measurements" [value]="measurement">{{measurement}}</option>
  </select>
  <button md-icon-button color="primary" *ngIf="l" (click)="addIngredient()">
    <md-icon>add</md-icon>
  </button>
  <button md-icon-button color="warn" *ngIf="!f" (click)="removeIngredient(i)">
    <md-icon>remove</md-icon>
  </button>
</div>
Run Code Online (Sandbox Code Playgroud)

课程相关代码:

addIngredient() {
  this.newRecipe.ingredients.push(new Ingredient());
}
Run Code Online (Sandbox Code Playgroud)

注意:div上面引用的内容出现在form元素内.当我把它移到div外面时, …

javascript angular

13
推荐指数
1
解决办法
3668
查看次数

如何在jasmine-node测试中强制错误分支

我正在使用jasmine-node测试节点服务器中API端点后面的控制器逻辑.以下是此控制器逻辑通常的样子:

var getSummary = function(req, res) {
  var playerId = req.params.playerId;

  db.players.getAccountSummary(playerId, function(err, summary) {
    if (err) {
      logger.warn('Error while retrieving summary for player %d.', playerId, err);
      return res.status(500).json({
        message: err.message || 'Error while retrieving summary.',
        success: false
      });
    } else {
      res.json({success: true, summary: summary});
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

以下是我成功测试else块的方法:

describe('GET /api/players/:playerId/summary', function() {
  it('should return an object summarizing the player account',   function(done) {
    request
      .get('/api/players/' + playerId + '/summary')
      .set('Content-Type', 'application/json')
      .set('cookie', cookie)
      .expect(200)
      .expect('Content-Type', /json/)
      .end(function(err, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jasmine jasmine-node

10
推荐指数
1
解决办法
236
查看次数

使用下划线更改数组中对象的一个​​属性

我希望利用下划线来避免for在我的代码库中编写循环.我正在使用map代替for这样的循环:

body.tags = _.map(body.tags, function(tag) {
  return {
    id: tag.id,
    userId: tag.userId,
    createDate: tag.createDate,
    tag: tag.tag.toLowerCase(),
  };
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法在不指定不会改变的属性(除了tag)之外的情况下执行此操作?指定字段似乎有点过分id: tag.id.

javascript underscore.js

9
推荐指数
2
解决办法
9210
查看次数

在从节点到Java的调用中强制执行utf8编码

我正在从节点中间层到Java后端进行调用,并将字符串作为查询参数传递.一切都很好,直到使用非英文字母字符(例如:ř,ý).当Java收到这些字符时,它会抛出:

parse exception: org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8!
Run Code Online (Sandbox Code Playgroud)

此调用完美无缺:

GET http://localhost:8000/server/name?name=smith
Run Code Online (Sandbox Code Playgroud)

此调用失败,出现上述错误:

GET http://localhost:8000/server/name?name=so?ovský
Run Code Online (Sandbox Code Playgroud)

我的问题涉及到哪里解决这个问题.我已经找到了这个节点的utf8编码器,并考虑在将来调用我的Java层之前将我的字符串编码为utf8.这是正确的方法还是我应该在Java中做些什么?

请注意,这是我的相关请求标头的样子:

{
  ...
  accept: 'application/json, text/plain, */*',
  'accept-encoding': 'gzip, deflate, sdch',
  'accept-language': 'en-US,en;q=0.8,el;q=0.6',
  ...
}
Run Code Online (Sandbox Code Playgroud)

javascript java jetty utf-8 node.js

9
推荐指数
1
解决办法
440
查看次数

SQL查询6度分离进行网络分析

我正在使用D3.js构建网络分析,以显示我的应用程序中的连接电话号码,最低可达六度.用于查找初始连接的SQL(postgres)低于且相当简单.但是,我很难过如何修改它来遍历六个级别的连接然后停止.

SELECT player_id, ps.player_state, ps.email, ph.create_date
FROM game.phone_hashes ph
INNER JOIN game.customer_settings cs ON cs.id = ph.player_id
WHERE hash IN (SELECT hash FROM game.phone_hashes WHERE player_id = $1);
Run Code Online (Sandbox Code Playgroud)

我已经通过研究这个问题找到了公用表格表达式(CTE)和递归的提及,但我不确定如何在这里应用它们.

我的目标是让所有玩家通过普通电话哈希连接到初始玩家(1美元),然后通过普通电话哈希连接到每个连接的所有玩家,并持续到6度分离.

sql postgresql

8
推荐指数
1
解决办法
935
查看次数

将项目锚定到离子菜单的底部

我有以下html在Ionic中构建一个侧面菜单.我的目标是锚定菜单中的最后一项,"登录"到菜单底部,远离其他项目.在Ionic中有一种简单的方法吗?

<ion-side-menus enable-menu-with-back-views="false">
  <ion-side-menu-content>
    <ion-nav-bar class="bar-positive">
      <ion-nav-back-button>
      </ion-nav-back-button>

      <ion-nav-buttons side="left">
        <button class="button button-icon button-clear ion-navicon" menu-toggle="left">
        </button>
      </ion-nav-buttons>
    </ion-nav-bar>
    <ion-nav-view name="menuContent"></ion-nav-view>
  </ion-side-menu-content>

  <ion-side-menu side="left">
    <ion-header-bar class="bar-positive">
    </ion-header-bar>
    <ion-content>
      <ion-list>
        <ion-item nav-clear menu-close href="#/app/people">
          <i class="icon ion-ios7-people"></i>
          People
        </ion-item>
        <ion-item nav-clear menu-close href="#/app/places">
          <i class="icon ion-ios7-location"></i>
          Places
        </ion-item>
        <ion-item nav-clear menu-close href="#/app/perks">
          <i class="icon ion-ios7-star"></i>
          Perks
        </ion-item>
        <ion-item nav-clear menu-close ng-click="login()">
          Login
        </ion-item>
      </ion-list>
    </ion-content>
  </ion-side-menu>
</ion-side-menus>
Run Code Online (Sandbox Code Playgroud)

html css ionic-framework

7
推荐指数
2
解决办法
8430
查看次数

在不更改数据库的情况下测试POST到API的策略

我正在使用jasmine-node来测试我的API,它对我的​​GET路由非常有用.但是,现在,我需要测试一些POST,但我不确定如何在不更改数据库的情况下进行此操作.

我有一个想法是重置在每个规范结束时我改变的任何值.

这是合理的,还是有更好的方法来测试我的API的POST请求?

javascript http node.js jasmine jasmine-node

6
推荐指数
1
解决办法
648
查看次数

Postgres限制参数,默认为无限

我将一个参数传递给Postgres查询,该查询允许用户设置LIMIT结果集.这个参数是可选的,我想将默认值设置LIMIT为无限(无限制),但我不确定在这种情况下应该传递什么.将-1的限制视为无限制吗?

sql postgresql

6
推荐指数
1
解决办法
3607
查看次数