我的团队正在评估从JavaScript中将部分文件切换为TypeScript,并且我们在代码中广泛使用了一些自定义mixin方法.从做一些基本的测试看来,虽然我们可以使用_.mixin按照规范创建mixins,但是我们不能在没有编译错误的情况下引用它们.当然,我们可以将这些引用放在定义文件中,但我通常不想修改它.
有什么方法可以做我们正在寻找的东西,还是我们运气不好?
我正在使用TypeScript 1.4.1,并且项目布局如下:
scripts/
libs/
jquery/
jquery.d.ts // Latest from DefinitelyTyped
jquery.js // 2.1.3
lodash/
lodash.d.ts // Latest from DefinitelyTyped
lodash.js // 3.3.1
main/
test.ts
Run Code Online (Sandbox Code Playgroud)
我的main/test.ts包含以下内容:
/// <reference path="../libs/lodash/lodash.d.ts" />
/// <reference path="../libs/jquery/jquery.d.ts" />
import _ = require("lodash");
import $ = require("jquery");
function requireExistingElement($el: $.JQuery) {
if(_.isUndefined($el) || _.isNull($el) || $el.length === 0) {
throw new Error("It appears the requested element does not exist?");
}
}
requireExistingElement($("body"));
Run Code Online (Sandbox Code Playgroud)
这是使用以下命令编译的:
tsc --module amd scripts/main/test.ts
Run Code Online (Sandbox Code Playgroud)
我希望它能正确运行,但是当我编译它时,我得到:
scripts/main/test.ts(7,38): error TS2304: Cannot find name '$'.
scripts/main/test.ts(13,24): …
Run Code Online (Sandbox Code Playgroud) 我正在使用Flask和Python 2.7编写我的网站的后端,并遇到了一些问题.我喜欢使用类来包含我的功能,它使我的东西整洁,并帮助我保持模块化的一切.但是,我遇到的一个问题是装饰器烧瓶用于路由不会保留自变量.我用它来访问它所在的类的loadDb方法.见下文.任何人都有任何想法为什么会这样,并知道如何解决这个问题,或者即使有办法解决这个问题?
class Test(object):
blueprint = Blueprint("Test", __name__)
def __init__(self, db_host, db_port):
self.db_host = db_host
self.db_port = db_port
def loadDb(self):
return Connection(self.db_host, self.db_port)
@blueprint.route("/<var>")
def testView(var): # adding self here gives me an error
return render_template("base.html", myvar=self.loadDb().find({"id": var})
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个动态表单,并遇到样式问题,当您向表单添加元素时,这会使自己变得非常明显.当我使用jQuery的append()
函数添加它们时,加载的输入中添加了样式,这些样式不会应用于任何创建的样式.新输入元素的边距是不存在的,而如果我在页面加载时手动添加它们,那么样式就在那里.似乎是一些我无法覆盖的浏览器默认样式.我该如何解决?示例代码如下.
CSS:
#GraphTools
{
border-top: 1px solid #BBBBBB;
height: 24px;
margin: 0 5px 3px;
padding-top: 2px;
}
#GraphSearch
{
float: left;
}
#GraphTools input
{
background-color: rgba(255, 255, 255, 0.4);
border-radius: 3px 3px 3px 3px;
box-shadow: 0 0 2px #444444 inset;
font-size: 14px;
padding: 2px;
}
#GraphTools input[type=button]:active, #GraphTools input[type=submit]:active
{
background-color: rgba(192, 192, 192, 0.4);
}
#GraphSearchFields
{
float: left;
margin-right: 5px;
}
#GraphSearchFields input
{
margin: 0 5px 0 5px;
}
#GraphZoom
{
float: right;
} …
Run Code Online (Sandbox Code Playgroud) jquery ×2
typescript ×2
css ×1
decorator ×1
flask ×1
html ×1
javascript ×1
lodash ×1
python ×1