小编Lou*_*uis的帖子

Backbone.js中的集合不会触发事件

我想,当一个给定的集合中的变化对模型进行烧制,实施一项行动,但每当我试图把一个监听器上change,addremove在我收集的事件,没有事件被触发.当我将更改事件附加到模型的initialize函数(只是为了测试)时,change事件被成功触发.下面的视图本身不会更改代码,但我希望每当对集合进行更改时它都会重新呈现.我的设置可能有问题,但我想得到你的建议.以下是我的代码:

contact.js(型号):

define([
  'jquery',
  'underscore',
  'backbone'
], function($, _, Backbone){

  var ContactModel = Backbone.Model.extend({
        urlRoot: '/contacts'
    });

  return ContactModel;
});
Run Code Online (Sandbox Code Playgroud)

contacts.js(收藏):

define([
  'jquery',
  'underscore',
  'backbone',
  'models/contact'
], function($, _, Backbone, Contact){

  var ContactCollection = Backbone.Collection.extend({
    url: '/contacts',
    model: Contact
  });

  return ContactCollection;

});
Run Code Online (Sandbox Code Playgroud)

contactlist.js(查看):

define([
  'jquery',
  'underscore',
  'backbone',
  'text!templates/contactlist.html',
  'collections/contacts'
], function($, _, Backbone, contactListTemplate, Contacts){

  var ContactListView = Backbone.View.extend({
    el: '.contact-list',
    render: function(options) {
        var that = this;
        var …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js backbone-events

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

如何让我的Selenium测试套件在Xnest或Xephyr中启动其Firefox实例并通过?

我的软件设置为运行我做的测试套件:

$ make selenium-test
Run Code Online (Sandbox Code Playgroud)

通过这种方式,套件通过没有问题.但是,将Firefox实例显示在我的桌面上会令人分心.而且,当我移动鼠标时,我偶尔会偶然做一些测试失败.所以,我想在Xnest或Xephyr中运行Firefox,以便它与我的其他应用程序分开.我所做的是:

$ Xnest :1 &
$ DISPLAY=:1 make selenium-test
Run Code Online (Sandbox Code Playgroud)

当我这样做并且我的测试套件设置为运行Chrome时,没有任何问题.但是,当我使用Firefox时,我遇到了以下问题:

  1. 我无法点击Firefox的菜单.这是必要的,因为如果测试失败,我有时会告诉Selenium让浏览器保持打开状态.

  2. 我无法在Firefox中输入任何内容.这是必要的,因为我的一些测试涉及键入文本或选择文本.

  3. 与Chrome完美配合的Selenium测试套件在Firefox中失败,并没有很好的解释.

由于第二点,每当尝试在Xnest或Xephyr中运行它时,我的测试套件就会失败.

我已经检查了我可以传递给Xnest和Xephyr的选项,并且没有看到任何有用的东西.

涉及的版本是:

  • Firefox 22和24.
  • 硒2.35.0和2.37.2
  • Xnest和Xephyr 1.14.3

x11 testing firefox selenium

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

window.onload 不在页面刷新时运行

我刚刚开始使用 RequireJs。只有一个问题。有人可以解释为什么 require 块内的代码不在页面刷新时运行。它仅在我清除缓存时运行

例子:

require(['game','comm','misc','soundutil','sprite','gui','constants'],function(Game,COMM,MISC,SoundUtil,Sprite, Gui,CNT){

    window.onload = function () {
        var canvas = document.getElementById('gameCanvas'),
         game = document.getElementById('game'),
         g = null,su = null;

        canvas.width = document.body.clientWidth;
        canvas.height = document.body.clientHeight;
console.log('Gamestate at beginning',CNT.GameState._current);
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript requirejs

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

计算datetimepicker中2个日期之间的差异

我想计算两个日期之间的差异,一个是从dateTimePicker1中挑选出来的,另一个是2014年2月20日,并将其存储在一个字符串中以添加到我的数组中,并能够以另一种形式显示

这是我的代码:

    TimeSpan getDateDifference(DateTime date1, DateTime date2)
    {
        TimeSpan ts = date1 - date2;
        int differenceInDays = ts.Days;
        string differenceAsString = differenceInDays.ToString();
        return ts;

    }


    public class Patient
    {
        public string patientidString;
        public string firstNameString;
        public string lastNameString;
        public string dateString;
        public string differenceAsString;


        public Patient()
        {
            patientidString = "";
            firstNameString = "";
            lastNameString = "";
            dateString = "";
        }

    }


    //Array
    Patient[] patientInfo = new Patient[10];




    private void button1_Click(object sender, EventArgs e)
    {
        TimeSpan difference = getDateDifference(new DateTime(2014, 2, …
Run Code Online (Sandbox Code Playgroud)

c# string date visual-studio-2010 date-arithmetic

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

如何防止DataTables根据过时的已保存状态显示或隐藏列

我有一个由DataTables 1.10驱动的表.过滤已打开.当我在下面谈论"进行搜索"时,我正在讨论使用此表的过滤功能.

问题描述

stateSave关闭时一切正常.但是,当stateSave打开时,会发生以下情况:

  1. Alice以管理员身份登录.因为管理员拥有所有权限,所以当她搜索文章时,她可以看到所有文章.由于某些文章已发布且某些文章未发布,因此该表格中有一列显示哪些文章已发布,哪些文章未​​发布.到现在为止还挺好.

  2. 随机用户Bob访问该站点.随机用户无法看到未发布的文章,因此该表隐藏了显示发布状态的列.到现在为止还挺好.

  3. 爱丽丝退出了.她现在像一个随机用户访问该网站.所以她应该看到Bob看到的确切内容.但是,当她进行搜索时,她仍然会看到指示发布状态的列.

(注意:我在这里讨论的问题纯粹是用户界面之一.服务器确保非特权用户无法获得未发布文章的记录.但问题是附加列为非特权用户提供他们不需要的信息他们只能在搜索中看到发表的文章,因此他们不需要看到他们在搜索中获得的每篇文章都已发布.)

配置数据表的代码通过执行以下操作来隐藏发布列:

var columnDefs = [];
if (!privileged) {
    columnDefs.push({
        targets: [1],
        orderable: false,
        visible: false
    });
}
Run Code Online (Sandbox Code Playgroud)

columnDefs作为columnDefs选项传递给DataTables .

问题的技术原因

问题是DataTables将列可见性等内容存储到它保存的状态中localStorage.因此,当Alice注销并再次作为非特权用户进行搜索时,即使值columnDefs正确,它也会保存状态覆盖.当Alice是管理员时,该状态被存储,并且它声明了发布列是可见的,因此即使Alice以非特权用户身份访问该站点,它仍然可见.

我想要的是让用户从保存状态中受益,但避免在用户权限发生变化时保持此状态.

注意事项:

  1. 我不想使用,sessionStorage因为我希望状态在浏览器关闭之间保持不变,但在浏览器关闭sessionStorage时会被清除.

  2. 我不能使用服务器分配的会话cookie来检测登录和注销,因为它只是HTTP.此外,特权可能因其他原因而改变.

  3. 我不想随意设置保存状态的到期时间.

datatables local-storage

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

基本NodeJS需要语法

我有一个关于NodeJS for basic语法的基本语法的问题.

在这个存储库中,

https://github.com/alduro/generator-flux-webapp/blob/master/app/templates/src/app.js

它在第10行使用此代码:

var {Router} = require('director');

然后在第40行:

var router = new Router(routes).configure({html5history: true}).init();

这有效.

但是,如果我改变var {Router} = require('director');var Router = require('director');.

它会抛出异常, TypeError: Router is not a constructor.

它不再起作用了.


所以我的问题是{variable}是什么意思?

感谢您的时间.

javascript node.js

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

WebDriverException:消息:握手时缺少'marionetteProtocol'字段

我目前正在尝试在本地运行机器人框架测试脚本(Ubuntu 12.04 LTS 64位).我遇到的问题是无法在开放浏览器中启动FF浏览器.以下是我所拥有的设置的详细信息/规格.

  • Firefox(v26.0)
  • Selenium2Library
  • 硒的服务器独立,2.53.1.jar
  • geckodriver-v0.9.0

请注意我使用相同的机器作为集线器和节点(硒网格)

这里是启动我的集线器的命令:

java -jar selenium-server-standalone-2.53.1.jar -role hub -port 4444
Run Code Online (Sandbox Code Playgroud)

虽然这是注册我的节点的命令:

java -jar selenium-server-standalone-2.53.1.jar -role node -hub http://localhost:4444/grid/register -trustAllSSLCertificates
Run Code Online (Sandbox Code Playgroud)

我在https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver(在PATH中添加可执行的电线)中执行了以下操作.

我也做了:

${ff default caps}    Evaluate    sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX    sys,selenium.webdriver
Set To Dictionary    ${ff default caps}    marionette=${True}
Create Webdriver    Firefox    executable_path=\home\my\wires
Open Browser   ${HOMEPAGE}  ff  None  ${HUB}
Run Code Online (Sandbox Code Playgroud)

结果,FF浏览器启动,但没有打开URL $ {HOMEPAGE}.我一直在谷歌搜索并坚持这个问题这么久.请帮忙..

selenium-grid robotframework selenium-webdriver firefox-marionette

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

打字稿中的IIFE函数

我发现这篇文章是Minko Gechev 用JavaScript编写自调用函数,它教我们如何编写一个在初始化后立即调用自身的JavaScript函数。我想知道我们如何在打字稿中做到这一点。我发现如果我在其中编写代码export class ComponentName,它将无法正常工作。我试过的代码:

import {Component, Input} from '@angular/core'

@Component({...})

export class MyComponent{

    @Input() infoes;

    (function(){
        console.log('testing');
    })();
}
Run Code Online (Sandbox Code Playgroud)

IDE显示的错误是unexpected token. a constructor, accessor, method or property was expected。我认为这与引入的TypeScript类概念有关。

typescript angular

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

ServiceWorker无法离线工作

我有一个简单的服务人员

安装

self.addEventListener('install', function(event) {
  console.log('Service Worker Install...');
  // pre cache a load of stuff:
  event.waitUntil(
    caches.open(CURRENT_CACHES.prefetch)
      .then(function(cache) {
      return cache.addAll([
        '/android-chrome-192x192.png',
        '/android-chrome-512x512.png',
        '/apple-touch-icon.png',
        '/browserconfig.xml',
        '/favicon-16x16.png',
        '/favicon-32x32.png',
        '/favicon.ico',
        '/favicon.png',
        '/mstile-150x150.png',
        '/safari-pinned-tab.svg',
        '/app.css',
        '/bundle.js',
        '/sw.js'
      ])
      .then(function(){
        console.log('Caches added');
      })
      .catch(function(error){
        console.error('Error on installing');
        console.error(error);
      });
    })
  )
});
Run Code Online (Sandbox Code Playgroud)

启用

self.addEventListener('activate', function(event) {
  console.log('Service Worker Activate...');
  // Delete all caches that aren't named in CURRENT_CACHES.
  var expectedCacheNames = Object.keys(CURRENT_CACHES).map(function(key) {
    return CURRENT_CACHES[key];
  });

  event.waitUntil(
    caches.keys().then(function(cacheNames) {
      return Promise.all(
        cacheNames.map(function(cacheName) {
          if …
Run Code Online (Sandbox Code Playgroud)

javascript offline service-worker

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

AddRegions不是一个函数

启动应用程序的简单代码

   define(['marionette'],function (Marionette) {


       var  MyApp = new Backbone.Marionette.Application();

        MyApp.addInitializer(function(options) {

        })
        MyApp.addRegions({
            mainRegion: "#content"
        });
    })

// MarionetteJS (Backbone.Marionette)
// ----------------------------------
// v3.1.0
//     Backbone.js 1.3.3
Run Code Online (Sandbox Code Playgroud)

怎么修 ?

javascript backbone.js marionette

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