小编Mat*_*vis的帖子

根据Google JavaScript样式指南在Blocks中的函数声明

根据Google JavaScript样式指南,函数声明不应在块中声明,因为它不是ECMAScript的一部分.但是,我并不完全清楚什么算作块.

具体来说,我有一个构造函数,我想在该构造函数的范围内定义一个函数.这是否算作一个块内的函数,因为它在一组{}内?如果是这样,这是否意味着每个函数声明必须是全局的?

一些好的衡量标准:

错了(?)

function Constructor() {
    function Shout () { alert('THE BEST UX IS IN ALL CAPS.'); }
}
Run Code Online (Sandbox Code Playgroud)

对 (?)

function Constructor() {
    var Shout = function () { alert('THE BEST UX IS IN ALL CAPS.'); };
}
Run Code Online (Sandbox Code Playgroud)

javascript google-style-guide ecmascript-5

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

Aurelia中的ES6字符串插值

我试图按照aurelia.io上的"入门"部分,并在字符串中的字符串插值有一些问题.

在第一个示例的viewmodel中,'fullName'计算的getter返回一个字符串

return '${this.firstName} ${this.lastName}'
Run Code Online (Sandbox Code Playgroud)

此值在视图(html模板)中用作$ {fullName}.

问题是不显示计算的全名,而是显示实际的返回字符串.我曾尝试使用Chrome和Firefox,但两者都没有显示正确的值.

welcome()函数存在同样的问题,因为它也返回一个字符串值.

我注意到在Aurelia Visual Studio示例中,返回值已更改为实际计算的字符串.

return this.firstName + " " + this.lastName;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ecmascript-6 aurelia

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

在Aurelia中拖放不起作用

我正在尝试为Aurelia创建一个拖放控件.最初,它工作得很好.

<div class="card" draggable="true" repeat.for="card of player2.hand">
Run Code Online (Sandbox Code Playgroud)

但是,当我将侦听器委托给dragstart事件时,拖动不再起作用.

<div class="card" draggable="true" dragstart.delegate="$parent.dragstart()" repeat.for="card of player2.hand">
Run Code Online (Sandbox Code Playgroud)

我可以触发dragstart事件并且事件有defaultPrevented: true,这使得默认的拖动事件无法启动.如何禁用preventDefaultAurelia中的特定事件委托人?

drag-and-drop ecmascript-6 aurelia

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

输入'CanvasRenderingContext2D | WebGLRenderingContext'不能分配给'CanvasRenderingContext2D'类型

我已经使用Typescript 1.5 Beta升级到Visual Studio 2015社区.我收到以下错误.

输入'CanvasRenderingContext2D | WebGLRenderingContext'不能分配给'CanvasRenderingContext2D'类型

这发生在以下行

var canvas: HTMLCanvasElement = $(element).find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
Run Code Online (Sandbox Code Playgroud)

我已将TypeScript工具版本设置为1.4和1.5并获得相同的错误.

typescript visual-studio-2015 typescript1.5

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

使用 dotnet cli 编写任务

我的 .net core 应用程序变得令人惊叹,所有兄弟都想使用它。我需要为他们提供一种让项目运行的安全方法,以及一种在未来添加发布任务的策略。

现在,由于我在这个问题这个问题中收到的帮助,我使用以下命令运行我的应用程序。

dotnet watch run --environment "Development"
Run Code Online (Sandbox Code Playgroud)

如果我能让我的开发人员使用更简单的东西,也许是自定义任务 ala npm 脚本,我会很高兴:

dotnet run dev
Run Code Online (Sandbox Code Playgroud)

我知道有基础设施可以通过 .csproj 文件中的 msbuild 支持此类事情,但文档对我来说还没有解决。

msbuild .net-core asp.net-core dotnet-cli

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

Durandal 2.0中的Bootstrap下拉列表

我试图在durandal 2.0 app中连接一些bootstrap下拉导航:

<ul class="nav nav-pills">
    <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
            <span>Dropdown</span>
            <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
            <li><a tabindex="-1" href="#/view/a>Option A</a></li>
            <li><a tabindex="-1" href="#/view/b">Option B</a></li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

单击"下拉列表"会导致Durandal的路由器尝试导航到根路由(即"#"或"").永远不要打开菜单.它是否正确?解决方法?

更新

标签遭遇同样的问题:

<div class="tabbable">
    <ul class="nav nav-tabs">
        <li class="active"><a href="#tab1" data-toggle="tab">Section 1</a></li>
        <li><a href="#tab2" data-toggle="tab">Section 2</a></li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane active" id="tab1">
        <p>I'm in Section 1.</p>
    </div>
    <div class="tab-pane" id="tab2">
        <p>Howdy, I'm in Section 2.</p>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap durandal

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

AngularJS服务独立于多个页面上的模块

我的角度应用程序后面的数据库中有一个用户表.我将单独的登录,注册和用户管理视图作为单独的页面.

我想定义一个服务,在加载用户对象时保留它们的列表.如果从数据库中查询新用户,则应将该记录传递给服务,并且该服务应返回现有对象(如果可用),否则创建新对象.此外,该服务应该能够在指示时禁用未使用的对象,并且这些对象应该设置为未初始化的用户对象.如果随后调用create,则应该只设置旧对象,而不是创建新对象.

我还想定义一个定义用户对象的服务(但是,它不应该被称为服务?).这样,用户将不仅仅是一个解析的JSON对象,而且还将使用方法进行修饰,以跟踪任何修改并提交或还原这些更改.

因为我有单独的页面都使用用户对象.我想在每个页面上包含这些服务.根据AngularJS文档,要注册一项服务,我需要做以下事情:

var myModule = angular.module('myModule', []);
myModule.factory('serviceId', function() {
  var shinyNewServiceInstance;
  //factory function body that constructs shinyNewServiceInstance
  return shinyNewServiceInstance;
});
Run Code Online (Sandbox Code Playgroud)

但是,这项服务是(据我所知)内联.我不想复制和粘贴代码.我想在一个单独的文件中定义服务.该服务应该不知道调用它的模块.它应该存在附加到模块.

我尝试services/user.js使用以下语法创建单独的文件:

$provide.service('users', UserService);
Run Code Online (Sandbox Code Playgroud)

这显然没有什么好处,因为$ offer未定义.但是,我不知道如何将$provide依赖项注入服务而不将其附加到模块.

有没有办法定义一个独立于模块的服务?有没有办法定义一个模型,用模型特定的功能装饰,独立于模块或服务?

javascript angularjs angularjs-service

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

Flask-SQLAlchemy和Flask-Restless没有取孙子

问题

我正在Flask,Flask-SQLAlchemy和Flask-Restless上构建一个应用程序.我已经使用restless为父子孙子关系生成API*.我孩子的GET会正确地取孙子,但父母的GET不会为每个孩子取孙子.

*事实上,亲子关系是一个多对多但同样的前提.

楷模

class Grandchild(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)

    parent = db.relationship('Child', backref='grandchild')

parent_child = db.Table('parent_child', 
    db.Column('parent_id', db.Integer, db.ForeignKey('parent.id')),
    db.Column('child_id', db.Integer, db.ForeignKey('child.id')),
    db.Column('number', db.SmallInteger)
)

class Child(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)

    grandchild_id = db.Column(db.Integer, db.ForeignKey('grandchild.id'), nullable=False)

class Parent(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)

    children = db.relationship('Child', secondary=parent_child)

api.create_api(Child, exclude_columns=['grandchild_id'])
api.create_api(Parent)
Run Code Online (Sandbox Code Playgroud)

GET:/ api/child response

{
  "num_results": 1, 
  "objects": [
    {
      "id": 1, 
      "name": "test"
      "grandchild": {
        "id": 1, 
        "name": …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy flask-restless

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

RequireJS:如何定义构造函数?

我想根据AMD规范创建构造函数.我找到了这个答案并试图遵循它.这是我最终得到的:

main.js

requirejs.config({

    paths: {
        'jquery': 'vendor/jquery-1.9.1.min',
        'lodash': 'vendor/lodash-1.3.1.min',
        'knockout': 'vendor/knockout-2.2.1.min',
        'bootstrap': 'vendor/bootstrap-2.3.2.min'
    }
});

requirejs(
    ['jquery', 'lodash', 'knockout', 'controller/categories'], 
    function main($,_,ko, CategoriesCtrl) {

        var categories = new CategoriesCtrl();

    }
);
Run Code Online (Sandbox Code Playgroud)

控制器/ categories.js

define('categories', function() {

    return function CategoriesCtrl(layers) {

        var self = this;
        layers = layers || [];

        console.log(ko);

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

我得到的结果是CategoriesCtrl未定义.我做错了什么?

javascript model-view-controller constructor requirejs

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

在Aurelia的MapUnknownRoutes内重定向

我希望错误的路由导航到根路由.我mapUnknownRoutes在路由器上添加了一个配置.

config.mapUnknownRoutes((inst) => inst.config.moduleId = 'home');
Run Code Online (Sandbox Code Playgroud)

但这使得路线不受影响.例如,#/fakeRoute到家的路线.理想情况下,我想要一种类似于返回的行为{ redirect: '#/' },这会取消导航并创建到路线的新导航'#/'.这是一个功能吗?

aurelia aurelia-router

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