我们有一个
SortedList<Resource, Resource> resources =
new SortedList<Resource, Resource>(new ResourceIdle());
Run Code Online (Sandbox Code Playgroud)
我们在模拟中使用的.这个资源列表以这种方式初始化,因为我们希望在任何时间点传递不同的比较器.我们SortedList<>遇到的第一个问题是需要在比较器中进行额外的比较,以便我们可以添加Resource具有相同属性的不同实例.例如,如果Comparer看起来像:
public int Compare(Resource x, Resource y)
{
int priority1 = x.Priority;
int priority2 = y.Priority;
if (priority1 > priority2) {
return -1;
} else if (priority1 < priority2) {
return 1;
} else {
return (x.Id.CompareTo(y.Id));
}
}
Run Code Online (Sandbox Code Playgroud)
然后我们必须在优先级相同时进行额外的比较,否则我们会返回具有相同键的条目的异常.所以我的问题是,还有另一种方法可以达到这个目的吗?而作为第二个问题,有什么比SortedList<>订购大量对象更快?
我开始构建一个新的应用程序,我想使用Backbone作为我的框架.以下是此(以及大多数应用)遵循的基本工作流程.
Backbone使用的正确/最佳模型是什么?
旧方式
用户导航到页面.
选择"创建新窗口小部件"
用户会
看到一个填充了输入的表单此时我可能会输入所输入的值(在通过基本验证之后),将它们打包并通过ajax请求将它们发送到服务器
请求返回为"确定"并且用户被带到其他地方(此步骤并不完全重要)
一些基本的伪代码
// Grab values
var userName = $('.UserName').val(),
dateOfBirth = $('.DateOfBirth').val();
...
...
...
$.ajax({
url: "/Webservices/ProcessStuff",
success: function(result){
if (result) {
// Render something or doing something else
} else {
// Error message
}
},
error: function () {
// Error message
}
});
Run Code Online (Sandbox Code Playgroud)
Backbone方式
使用与上面相同的例子; 我假设我有一个用户信息模型和一个显示输入的视图.但是,处理对Web服务的实际调用是我感到困惑的事情之一.这需要去哪里?在模型中或click某些"Go"按钮的视图中?
Model.UserInformation = Backbone.Model.extend({ username: null, dateOfBirth: null });
也许还有这些UserInformation模型的集合?
UserInformations = Backbone.Collection.extend({ model: Model.UserInformation' });
所以我要问的底线是......
实现这一功能的最佳方法是什么?
实际执行CRUD的正确方法是什么?将实际调用放在哪里删除/更新/创建/等?
我有这个:
public string Log
{
get { return log; }
protected set
{
if (log != value)
{
MarkModified(PropertyNames.Log, log);
log = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的数据绑定实用程序类执行此操作:
PropertyInfo pi = ReflectionHelper.GetPropertyInfo(boundObjectType, sourceProperty);
if (!pi.CanWrite)
SetReadOnlyCharacteristics(boundEditor);
Run Code Online (Sandbox Code Playgroud)
但PropertyInfo.CanWrite并不关心该集是否可公开访问,只是它存在.
如何确定是否有公共场景,而不仅仅是任何场景?
我有一个我自己构建的自定义控件,其中包含要选择的项目列表.我担心这些项目会一起运行,看看这个列表中有多种不同类型的操作.
所以我能够通过使用水平规则将这些分成组.
我工作的人认为水平规则是一个糟糕的设计选择,并希望我将其改为风格化的DIV.除了简单易懂之外,我真的没有其他意见.我实施的HR很好,看起来很好.
思考?横向规则是一个好的或坏的设计选择?
我的大脑今天早上没有工作.我需要一些帮助从静态方法访问一些成员.下面是一个示例代码,如何修改它以便TestMethod()可以访问testInt
public class TestPage
{
protected int testInt { get; set; }
protected void BuildSomething
{
// Can access here
}
[ScriptMethod, WebMethod]
public static void TestMethod()
{
// I am accessing this method from a PageMethod call on the clientside
// No access here
}
}
Run Code Online (Sandbox Code Playgroud) 我觉得自己像个白痴,但我真的无法理解这一点.
我正在使用常规Twitter Bootstrap项目的John Long的Sass Twitter Bootstrap转换.位于GitHub
每当我编译它时,我会收到以下错误:
error sass/bootstrap.scss (Line 246 of sass/bootstrap/_mixins.scss: Invalid
CSS after "...-shadow($shadow": expected ")", was "...) { ")
Sass::SyntaxError on line ["246"] of C: Invalid CSS after "...-shadow($shadow":
expected ")", was "...) { "
Run Code Online (Sandbox Code Playgroud)
这是它抱怨的语法:
// Drop shadows
@mixin box-shadow($shadow...) {
-webkit-box-shadow: $shadow;
-moz-box-shadow: $shadow;
box-shadow: $shadow;
}
Run Code Online (Sandbox Code Playgroud)
我之前从未在mixin上使用省略号看到过这种语法.
我的问题是如何解决此错误.这显然是我的问题.
我正在使用Compass v0.12.2
我有3个我想要处理的任务,当这3个任务完成后,我想做以下事情:
随着Grunt我对所有这一切一个漫长的过程.这是我尝试过的Gulp
gulp.task('libs', function () {
return gulp.src('js/libs/*.js')
.pipe(concat('01.libs.js', {newLine: ';'}))
.pipe(gulp.dest('min'));
});
gulp.task('plugins', function () {
return gulp.src('js/plugins/*.js')
.pipe(concat('02.plugins.js', {newLine: ';'}))
.pipe(gulp.dest('min'));
});
gulp.task('apps', function () {
return gulp.src('js/apps/**/*.js')
.pipe(concat('03.apps.js', {newLine: ';'}))
.pipe(gulp.dest('min'));
});
gulp.task('scripts', ['libs', 'plugins', 'apps'], function () {
return gulp .src('min/*.js')
.pipe(concat('testFile.js', {newLine: ';\r\n'}))
.pipe(rename({suffix: '.min.v' + pkg.version }))
.pipe(gulp.dest('min'))
.pipe(notify({ message: 'Scripts minified'}));
});
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我想只输出输出,而不是写出3个中间文件,然后将它们连接起来.
所以我接着尝试了:
function libs () {
return gulp.src('js/libs/*.js')
.pipe(concat('01.libs.js', {newLine: ';'}));
}
function plugins () …Run Code Online (Sandbox Code Playgroud) 我无法让我的测试使用phantomJs运行.
吞咽任务
var jasminePhantomJs = require('gulp-jasmine2-phantomjs');
gulp.task('test', function() {
return gulp.src('./SpecRunner.html')
.pipe(jasminePhantomJs());
});
Run Code Online (Sandbox Code Playgroud)
SpecRunner.html
<script src="lib/jquery.min.js"></script>
<script src="lib/lodash.min.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-jquery.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="dist/exportToCsv.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/exportToCsvSpec.js"></script>
Run Code Online (Sandbox Code Playgroud)
独立运行此文件会报告我的所有测试exportToCsvSpec都要通过.但是,当我尝试运行我的gulp任务时,我得到以下内容:
Using gulpfile ~/gulpfile.js
Starting 'test'...
Start running spec file: /ExportToCsv/SpecRunner.html
PhantomJS path: /ExportToCsv/node_modules/gulp-jasmine2-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs
Loading /ExportToCsv/SpecRunner.html
Page has timed out; aborting.
gulp-jasmine2-phantomjs: ? Assertions failed in SpecRunner.html
'test' errored after …Run Code Online (Sandbox Code Playgroud) 我有一些非常基本的RequireJs代码,它使用简单的html获取html文件.在Firefox 8.0中它工作正常,但在我的Chrome(17.0.9.xxx)版本中,我收到以下错误:
仅支持HTTP的跨源请求.
这可能只是这个Chrome版本或文本插件的问题吗?
define([
'jquery',
'backbone',
'text!templates/home/listOfStuff.html'
], function ($, Backbone, mainTemplate) {
var mainView = Backbone.View.extend({
el: $('#list'),
render: function () {
this.el.html(mainTemplate);
}
});
// return the view object
return new mainView;
});
Run Code Online (Sandbox Code Playgroud)
当需要尝试获取html文件时,发生错误.
我正在研究一些拖放功能,并通过标准的Backbone方式附加事件:
events: {
'dragenter': 'dragEnter',
'dragend': 'dragEnd'
....,
.....
}
Run Code Online (Sandbox Code Playgroud)
我在我的函数中注意到event传递给它的对象不包含html5规范中概述的某些属性.
具体来说,dataTransferobj丢失了.
我创建了一个快速演示来演示我的问题.只需将文件或其他内容拖到其上即可在日志中查看.
我的问题是为什么会发生这种情况?我查看了文档,似乎无法找到它.
backbone.js ×3
c# ×3
gulp ×2
.net ×1
compass-sass ×1
css ×1
data-binding ×1
html ×1
jasmine ×1
javascript ×1
jquery ×1
mvvm ×1
node.js ×1
phantomjs ×1
q ×1
reflection ×1
requirejs ×1
sass ×1
sortedlist ×1
sorting ×1
unit-testing ×1