小编jac*_*arm的帖子

为什么使用itemController呈现空项的集合?

我正在学习Ember,同时遵循ember-cli的todomvc教程:http://thetechcofounder.com/getting-started-with-ember-js-using-ember-cli/

我在编辑待办事项的部分,需要添加editTodo动作TodoController.到目前为止一切都那么好,但它也说要itemControllereach把手助手上使用,告诉每个待办事项使用特定的控制器

在此输入图像描述.

问题是,当我添加itemControllereach模板(使用Emblem.js: each itemController='todo'),模板不再呈现在集合中的每个项目的标题,它只是使他们的空白:

在此输入图像描述

我不明白为什么会这样.

模板提取

section#main
  ul#todo-list
    each
      li class={isCompleted:completed}
        if isEditing
          input.edit
        else
          = input class='toggle' type='checkbox' checked=isCompleted
          label{action 'editTodo' on='doubleClick'}= title
          button.destroy
  input#toggle-all type='checkbox'
Run Code Online (Sandbox Code Playgroud)

控制器提取

`import Ember from 'ember'`

TodoController = Ember.Controller.extend
  actions:
    editTodo: ->
      @set 'isEditing', true

`export default TodoController`
Run Code Online (Sandbox Code Playgroud)

coffeescript ember.js emblem.js

5
推荐指数
1
解决办法
588
查看次数

将所有更改回滚到Ember Data模型的最佳方法

我正在使用ember-data来编辑具有自动模型分辨率的用户

this.route('user', function() {
  this.route('edit', { path: ':user_id'})
});
Run Code Online (Sandbox Code Playgroud)

这工作正常,用户可以修改模型的所有方面DS.attribute,DS.belongsToDS.hasMany.

用户可以通过多种方式导航,在这种情况下,应从模型中删除所有更改.

  • 单击 Cancel按钮
  • 单击Broswer Back按钮
  • 单击Save按钮,远程请求fails,然后导航离开页面.
  • 只需点击页面上的其他链接即可将其带到其他位置.

只有在用户通过单击Save按钮明确要求更改并且服务器请求成功时,才应应用更改.

我考虑使用ember-buffered-proxy,但我不确定这将如何处理DS.belongsTo和DS.hasMany关系.无论如何,在保存模型之前我需要 buffer.applyBufferedChanges();先保存,如果服务器出现故障,我就像以前一样处于保存状态.

willTransition路线中的钩子似乎是显而易见的地方,但我怎样才能确保所有更改都从模型中删除,rollbackAttributes()只有DS.attribute控件才有效.

ember.js ember-data

5
推荐指数
1
解决办法
1578
查看次数

如何使用JavaScript中的日期和年份将日期格式化为阿拉伯语?

我希望日期格式为以下格式:

日期:2016-12-04进入الأحد,4ديسمبر,2016

但我得到以下内容.这些数字将转换为阿拉伯数字.我想要英文数字的日期和年份:

الأحد,4ديسمبر,2016

我使用以下代码将日期格式化为阿拉伯语.

var date = new Date('2016-12-04');
options = {
           weekday: 'long',
           year: 'numeric',
           month: 'short',
           day: 'numeric',
          };
var dateString = date.toLocaleDateString('ar-SA', options);
alert(dateString);
Run Code Online (Sandbox Code Playgroud)

javascript date arabic

5
推荐指数
1
解决办法
1789
查看次数

对 SEO 友好的 React-Redux 应用

React 应用程序动态地动态渲染组件,因此搜索引擎无法索引页面,并使社交共享变得复杂。处理此类问题并使 React-Redux 应用程序对 SEO 友好的最佳实践是什么?

seo reactjs redux

5
推荐指数
1
解决办法
3044
查看次数

成功时拒绝$ http承诺

我有一个函数,它返回$ http GET的承诺(承诺成功/错误由调用者处理).我需要的是,在某些条件下,即使$ http成功,也要返回一个错误(调用者将这个条件视为被拒绝的承诺).

在这个插件中,我试图返回$ q.reject()但这不起作用.

http://plnkr.co/edit/iC3Wb1PBUFrXgPbTJyU0?p=preview

这是JavaScript:

app.controller("ctrl", function($scope, $http) {
  var getUrl = function() {
    var config = {
      method: 'GET',
      url: 'some.txt'
    };
    var x = 1; // if x == 1 the http should fail
    return $http(config).success(function(response, status, headers, config) {
      console.log(response);
      if (x == 1) return $q.reject('error');
    }).error(function(data, status, headers, config) {});
  };
  var init = function() {
    var promise = getUrl();
    promise.then(function() {
      alert('OK');
    }, function() {
      alert('error');
    });
  };
  init();
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript angularjs

4
推荐指数
2
解决办法
6284
查看次数

jQuery - 如何将字符串中的每个字符包装在跨度中

如何将 div 的字符转换为跨度?

例如,我想转换这个:

<div>
    Hello World
</div>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<div>
    <span>H</span>
    <span>e</span>
    <span>l</span>
    <span>l</span>
    <span>o</span>
    <span>W</span>
    <span>o</span>
    <span>r</span>
    <span>l</span>
    <span>d</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个 StackOverflow 建议,但是它将空格转换为跨度。我需要的是仅将字符转换为跨度:

$("div").each(function (index) {
    var characters = $(this).text().split("");

    $this = $(this);
    $this.empty();
    $.each(characters, function (i, el) {
        $this.append("<span>" + el + "</span");
    });
 });
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

Three.js-给粒子圆形

我目前正在尝试three.js。我想在下面的示例中更改代码,以便点是圆形的,而不是正方形。

Codepen示例

我发现了另一个示例,称为canvas粒子random,它具有圆形粒子,基本上,脚本中的唯一区别如下:

var PI2 = Math.PI * 2;
var program = function ( context ) {

    context.beginPath();
    context.arc( 0, 0, 0.5, 0, PI2, true );
    context.fill();

};
Run Code Online (Sandbox Code Playgroud)

我以为如果将其添加到其他脚本中,则粒子将变得圆润。但是,当我将上述脚本添加到第一个脚本时,它不起作用(我只得到了蓝屏)。

有人知道我在做什么错吗?

javascript three.js

4
推荐指数
2
解决办法
2778
查看次数

有没有简单的方法来生成样本FHIR资源?

如果不使用商业工具,是否有一种简单的方法来生成样本FHIR资源?

我正在开发一个项目来将FHIR消息存储到Elasticsearch,我需要一个工具来实时生成FHIR样本消息以通过TCP/IP发送.

hl7-fhir

4
推荐指数
2
解决办法
1437
查看次数

Cypress.io 测试中未发生拖放

我试图拖动一个元素,然后将其放入放置区域,但测试并未在 Cypress.io 中执行拖放操作。如果有人可以就这里的潜在问题提供建议,那将非常有帮助。没有抛出错误,但是这里仍然没有发生拖放。

describe('Verify the drag and drop test', function() {

  it.only('Check whether the drag and drop of an item is working fine', function() {

  cy.visit('http://www.seleniumeasy.com/test/drag-and-drop-demo.html')  

    const MyDataTransfer = function () {};
    const dt = new MyDataTransfer ();
    dt.types = [];

    // cy.wait(3000);

    cy.get('#todrag span')
      .contains('Draggable 1')
      .trigger("draggable", {dataTransfer: dt});

    cy.get("#todrag span")
      .contains('Draggable 1')
      .trigger('mousedown', { which: 1, pageX: 600, pageY: 600 })
      .trigger('mousemove', { which: 1, clientX: 330, clientY: 35 });

    cy.wait(3000);

    cy.get('#mydropzone')
      .trigger("dropzone", {dataTransfer: dt});                     
  });   
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript drag-and-drop cypress

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

如何在 promise 的 then() 块之外使用 Cypress 夹具数据

我正在测试 Cypress,我有一个自定义 Cypress 命令的代码:

Cypress.Commands.add('login', (user, password) => {
  if (!user || !password) {
    user = 'user@test.com.br';
    password = '123321';
  }

  cy.visit('');
  cy.contains('Entrar').click();
  cy.get('input[name=_username]')
    .type(user);
  cy.get('input[name=_password]')
    .type(password);
  cy.get('.btn').click();
});
Run Code Online (Sandbox Code Playgroud)

如果调用cy.login()不带任何参数,userpassword在内部分配if块。否则,它使用传递的参数值。

我试图在这里添加装置,并想出了这个代码:

Cypress.Commands.add('login', (user, password) => {

  if (!user || !password) {

    cy.fixture('users').then((json) => {
      var user, password;

      user = json[0].email;
      password = json[0].password;

      login2(user,password);
    });

  } else {

    login2(user, password);

  }

  function login2(user, password) {

    cy.visit('');
    cy.contains('Entrar').click();
    cy.get('input[name=_username]')
      .type(user);
    cy.get('input[name=_password]') …
Run Code Online (Sandbox Code Playgroud)

automated-tests cypress

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