小编Buz*_*nas的帖子

Microsoft Edge:本地/会话存储在新选项卡中不起作用

我正在研究Azure中托管的Web应用程序.我在MS Edge(build 20.10525.0.0)上尝试过它并遇到了以下问题.

我有一个目标_blank的链接,可以在一个新的标签页面中打开.在此链接的click事件中,我将一些数据存储在会话存储中.新页面正在检索数据以显示它.这在Chrome,Firefox,IE 9-10-11下运行良好.

在Edge下,存储似乎工作正常.想到,检索并不总是有效.有时,第一次尝试有效.有时,它返回null.

我试图使用本地存储而不是会话存储.我也尝试使用window.open代替目标_blank.这两种解决方案都不起作用.

有人有想法吗?

tabs microsoft-edge

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

将参数属性简写与TypeScript中的Destructuring结合使用

编辑

在TypeScript的Github repo上记录了一个问题,他们正在接受PR来实现它.


在TypeScript中,当我们想要从构造函数定义中自动在类中创建属性时,我们可以利用参数属性的简写,例如:

class Person {
    constructor(public firstName : string, public lastName : number, public age : number) {

    }
}
Run Code Online (Sandbox Code Playgroud)

然后,转换后的Javascript将是:

var Person = (function () {
    function Person(firstName, lastName, age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }
    return Person;
})();
Run Code Online (Sandbox Code Playgroud)

但是如果我们想在构造函数中接收一个对象,它将是这样的:

interface IPerson {
    firstName : string,
    lastName : string,
    age: number
}

class Person {
    constructor(person : IPerson) {
        this.firstName = person.firstName;
        this.lastName = person.lastName;
        this.age = person.age; …
Run Code Online (Sandbox Code Playgroud)

destructuring typescript

21
推荐指数
2
解决办法
5911
查看次数

重复多个标签而不在Aurelia中创建容器

我想我有:

<template>
  <!-- some code here -->
  <div>
    <div repeat.for="item of arr">
      <label for.bind="item.id">${item.name}</label>
    </div>
    <div repeat.for="item of arr">
      <input type="text" id.bind="item.id" value.bind="item.value" />
    </div>
  </div>
  <!-- more code here -->
</template>
Run Code Online (Sandbox Code Playgroud)

让我们假设arr我的ViewModel 的属性是:

arr = [
  { id: 'txtID', name: 'ID', value: '' },
  { id: 'txtFirstName', name: 'First Name', value: '' },
  { id: 'txtLastName', name: 'Last Name', value: '' }
];
Run Code Online (Sandbox Code Playgroud)

Aurelia会像这样呈现:

<!-- some code here -->
<div>
  <div>
    <label for='txtID'>ID</label>
  </div>
  <div>
    <label for='txtFirstName'>First …
Run Code Online (Sandbox Code Playgroud)

aurelia

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

从另一个页面获取Bootstrap的模态内容

我在一个名为的页面中有一个锚点,menu.html我在使用Bootstrap模式显示来自另一个名为的页面的数据时遇到了问题Lab6.html.

menu.html

<div class="collapse navbar-collapse navbar-exl-collapse">
  <ul class="nav navbar-nav" id="menu">
    <li><a href="/emplookup.html">Lookup</a></li>
    <li><a href="/modalexample.html">Modals</a></li>
    <li><a href="/Lab6.html#theModal" data-toggle="modal">Lab 6</a></li><!-- this one -->
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

Lab6.html

<div class="modal fade text-center" id="theModal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">X</button>
        <h1>Lab 6</h1>
      </div>
      <div class="modal-body">
        <div class="panel panel-default">
          <div class="panel-heading text-center">
            Employee Information
          </div>
          <div class="panel-body">
            <div class="row">
              <div class="text-right col-xs-2">Title:</div>
              <div class="text-left col-xs-3" id="title"></div>
              <div class="text-right col-xs-2">First:</div>
              <div class="text-left col-xs-3" id="firstname"></div>
            </div>
            <div class="row">
              <div class="text-right …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery modal-dialog twitter-bootstrap

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

为什么要在任务运行器(grunt)上使用模块捆绑器(webpack)?

在过去,我使用了一个yeoman-generator Grunt来完成我的所有开发任务.通常在处理项目时我会用指南针来编译我的scss,然后打包和uglify我的JS,优化图像,lint我的代码,以及许多其他有用的东西.

最近我看到了人们使用webpack而不是grunt插件来实现其中许多任务的趋势.为什么是这样?在这方面,模块捆绑器有什么好处?

javascript gruntjs webpack

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

如何使用Javascript检查字符串是否有任何非ISO-8859-1字符?

我想为 Javascript 中的 ISO-8859-1 字符编写一个字符串验证器(或正则表达式)。

如果字符串有任何非 ISO-8859-1 字符,则验证器必须返回false否则true。例如:

str = "abcÂÃ";
validator(str); // should return true;

str = "a ? ?";
validator(str); // should return false;

str ="? ?";
validator(str); // should return false;
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下正则表达式,但效果不佳。

var regex = /^[\u0000-\u00ff]+/g;
var res = regex.test(value);
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

使用Webpack Dev Middleware在Webpack中热重新加载CSS文件的最简单方法

我有一个用TypeScript编写的项目,我可以利用Webpack Hot Reload,在我的Node.js服务器中使用两个webpack-hot-middlewarewebpack-dev-middleware库.

此外,我已经为我的Stylus代码配置了所有构建步骤(使用Gulp进行增量构建),这会在我的公共目录中生成一个单独的CSS文件.

所以,现在我想利用Webpack对CSS的热重载,因为我已经有了我的TypeScript内容,但我不想让它构建我的CSS文件,因为我已经有了很棒的东西.理想情况下,我只想让Webpack在每次更改时热重新加载我的单个CSS文件.实现这一目标的最简单,最好的方法是什么?

我当前的配置文件如下所示:

const webpack = require('webpack');

module.exports = {
  entry: [
    'webpack-hot-middleware/client',
    './src/client/index.tsx'
  ],
  output: {
    path: '/public/js/',
    filename: 'bundle.js',
    publicPath: '/js/'
  },
  resolve: {
    extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
  },
  module: {
    loaders: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader'
      }
    ]
  },
  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin()
  ];
};
Run Code Online (Sandbox Code Playgroud)

然后,我使用Webpack Hot Middleware和Webpack Dev Middleware,如下所示:

const webpackConfig = require('../webpack.config');
const compiler = webpack(webpackConfig);
app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: webpackConfig.output.publicPath …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-hot-middleware webpack-dev-middleware

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

Knockout JS中的扩展器具有多个参数

可以在knockout.js中使用具有多个参数的扩展器

例:

ko.extenders.currency = function(target, currencySymbol, position) {
    var result = ko.computed({
        read: target,  
        write: function(newValue) {
            var current = target(),
            if (position == 'left') {
                target(currencySymbol+target);
            } else {
                target(target+currencySymbol);
            }
        }
    }).extend({ notify: 'always' });
Run Code Online (Sandbox Code Playgroud)

但那我怎么把它绑定到可观察的?

this.One = ko.observable(one).extend({ currency: ???, currencySymbol: '£', position : 'left'});
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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

为什么导入节点模块会破坏atom-typescript中的内部Typescript命名空间?

我有一个非常小的节点Typescript项目,具有以下结构:

应用结构

尝试在我的index.ts文件中导入"diff"模块时,如下所示:

import * as diff from 'diff';
Run Code Online (Sandbox Code Playgroud)

Atom-typescript突然失去了定位我的"fgtApp.Interfaces"命名空间的能力:

丢失内部命名空间的自动完成功能

一旦我删除了import语句,node就能解析"fgtApp.Interfaces"命名空间,不会出现这样的问题:

自动完成工作正常,无需导入声明

这是atom-typescript中的错误还是我对导入这些外部模块的方式的理解中的错误?

typescript

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

使用 localforage 更新一项

我有一个像这样的本地 indexeddb:

// Unlike localStorage, you can store non-strings.
localforage.setItem('123456', {
  //0 - Ref cli
  ref_cli: '4720271',
  //1 - Offre client
  offre_cli: 'Offre 3',
  //2 - Date RDV
  date_rdv: '22/09/2015',
  //3 - Heure rdv
  heure_rdv: '10H00',
  //4 - Nom client
  nom_cli: 'DURAND',
  //5 - Prénom client
  pren_cli: 'Pierre',
  //6 -Adresse client
  adr_cli: '3 rue de l\'église',
  //7 - CP client
  cp_cli: '75000',
  //8 - Ville client
  ville_cli: 'PARIS',
  //9 - Batiment
  bat_cli: 'A',
  //10 - Escalier
  esc_cli: '2',
  //11 - …
Run Code Online (Sandbox Code Playgroud)

javascript indexeddb localforage

5
推荐指数
2
解决办法
2928
查看次数