在获得新值之前,是否可以在knockout中获取可观察的可观察量的当前值?
例:
this.myObservable = ko.observable();
this.myObservable.subscribe(function(newValue){
//I'd like to get the previous value of 'myObservable' here before it's set to newValue
});
Run Code Online (Sandbox Code Playgroud) 有没有办法将JSON数据对象映射到可观察数组,然后将可观察数组的每个项初始化为特定类型的视图模型?
我已经查看了所有淘汰赛的文档以及这里的淘汰赛和映射示例,我找不到任何适用于我所追求的答案.
所以,我有以下JSON数据:
var data = {
state : {
name : 'SD',
cities : [{
name : 'Sioux Falls',
streets : [{
number : 1
}, {
number : 3
}]
}, {
name : 'Rapid City',
streets : [{
number : 2
}, {
number : 4
}]
}]
}
};
Run Code Online (Sandbox Code Playgroud)
我有以下视图模型:
var StateViewModel = function(){
this.name = ko.observable();
this.cities = ko.observableArray([new CityViewModel()]);
}
var CityViewModel = function(){
this.name = ko.observable();
this.streets = ko.observableArray([new StreetViewModel()]);
}
var StreetViewModel …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序来显示我们产品的预期寿命,因为它与全球各地的平均天气状况有关,我希望我的地图能够反映最新的国家边界.
任何人都可以推荐某个地方获取世界上最新国家边界的纬度/经度点数据集吗?
当我需要在函数范围内多次访问jQuery选择器的结果时,建议我运行一次选择器并将其分配给局部变量吗?
请原谅我这里的陈词滥调,但我认为这说明了这个问题.那么,这段代码的执行速度会更快:
var execute = function(){
var element = $('.myElement');
element.css('color','green');
element.attr('title','My Element');
element.click(function(){
console.log('clicked');
});
}
Run Code Online (Sandbox Code Playgroud)
比这个代码:
var execute = function(){
$('.myElement').css('color','green');
$('.myElement').attr('title','My Element');
$('.myElement').click(function(){
console.log('clicked');
});
}
Run Code Online (Sandbox Code Playgroud)
如果没有区别,有人可以解释原因吗?jQuery是否在选择后缓存元素,以便后续选择器不必再费心搜索dom?
我有一个父子视图模型对象结构设置,需要更新子项中父项的observable.我基本上提出了两种模式:
1]将父属性的引用传递给子级并从子级内更新属性:
var ParentViewModel = function(){
var self = this;
this.selectedItem = ko.observable();
this.child = ko.observable(new ChildViewModel(self.selectedItem));
}
var ChildViewModel = function(parentSelectedItem){
var self = this;
this.id = ko.observable();
this.parentSelectedItem = parentSelectedItem;
this.select = function(){
self.parentSelectedItem(self);
}
}
Run Code Online (Sandbox Code Playgroud)
2]在父项上创建子项的select方法,并在本地引用父项observable:
var ParentViewModel = function(){
var self = this;
this.selectedItem = ko.observable();
var child = new ChildViewModel();
child.select = function(){
self.selectedItem(child);
}
this.child = ko.observable(child);
}
var ChildViewModel = function(){
this.id = ko.observable();
}
Run Code Online (Sandbox Code Playgroud)
这些模式都没有让我头疼.第一个将整个属性引用推送到子视图模型中,第二个将子函数定义在子范围之外.
有没有人有任何其他模式的建议,如何在javascript中以干净和可测试的方式实现此操作?或者我或多或少地坚持这两个选项?
我有一个元素拥有一个属性,其值绑定到一个knockout observable:
<text transform='matrix(1 0 0 1 1 1)' data-bind='attr:{transform:textTransform}'></text>
当元素加载时,我希望observable包含在dom元素上定义的值,但是它反而加载为undefined,并且从dom元素中删除属性:
<text data-bind='attr:{transform:textTransform}'></text>
是否可以从dom元素属性初始化knockout observable的值并同时保留dom元素属性的值?
我们即将开始构建面向服务的框架(SOA),这肯定会涉及大量的粒度Web服务(WCF中的REST).我们在对客户端和服务器端代码库进行单元测试时非常自律,但是我们在单元测试Web服务方面没有太多经验.我们真的在寻找关于应该在哪里编写测试的指导,以及在单元测试我们的服务时使用什么方法的建议.
我们应该编写发出http请求的测试并声明响应是他们应该的吗?我们是否应该只关注测试服务方法本身的内部逻辑而不是担心测试实际的请求?或者我们应该两个都做?我们应该测试什么还有其他建议吗?
我们真的在寻找一些解释和指导,并且真的很感激我们能得到的任何建议.
我很想知道是否有人有任何建议或替代模式用于使用来自另一个对象的数据构建自定义对象.
我们目前正在探索三种方法.
1)静态构建方法
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
public static MyObject Build(DataRow data)
{
MyObject newObject = new MyObject();
newObject.Id = Convert.ToInt32(data["ID"]);
newObject.Name = Convert.ToString(data["NAME"]);
return newOjbect;
}
}
Run Code Online (Sandbox Code Playgroud)
2)构建器类
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public class MyObjectBuilder
{
public static MyObject Build(DataRow data)
{
MyObject newObject = new MyObject();
newObject.Id = Convert.ToInt32(data["ID"]); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下行将一串svg解析为XElement:
XElement productSvg = XElement.Parse(svgString);
Run Code Online (Sandbox Code Playgroud)
但我得到以下异常:XmlException - 'xlink'是未声明的前缀 这是我的svg:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg62433" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.19 596.32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
<g id="g7123">
<path id="path5588" d="m404.54,164.29c0,121.64-98.612,220.26-220.26,220.26-121.64,0-220.26-98.612-220.26-220.26,0-121.64,98.612-220.26,220.26-220.26,121.64,0,220.26,98.612,220.26,220.26z" transform="matrix(0.01922722,0.99981514,-0.99981514,0.01922722,536.42634,464.95177)" fill="none"/>
<text id="text5590" style="writing-mode:lr-tb;letter-spacing:0px;text-anchor:middle;word-spacing:0px;text-align:center;" font-weight="bold" font-size="64px" line-height="125%" font-stretch="normal" font-variant="normal" font-style="normal" font-family="'Swis721 Cn BT'">
<textPath id="textPath5598" xlink:href="#path5588" startOffset="50%">
<tspan id="contentTopText" style="writing-mode:lr-tb;text-anchor:middle;text-align:center;" font-weight="bold" font-size="64px" line-height="125%" font-stretch="normal" font-variant="normal" font-style="normal" font-family="'Swis721 Cn BT'">Text Here</tspan>
</textPath>
</text>
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在.NET XLinq中成功解析包含命名空间的xml属性?
我正在编写一个允许用户使用鼠标绘制的脚本:http: //jsfiddle.net/ujMGu/
问题:如果你移动鼠标的速度非常快,它会跳跃并跳过几个地方.有没有办法捕获所有点,而没有在绘图线之间跳过任何黑色空格?
CSS
#myid{background: none repeat scroll 0 0 #000000;
color: #FFFFFF;
display: block;
height: 1000px;
margin: 3%;
position: relative;
text-indent: -1100px;}?
Run Code Online (Sandbox Code Playgroud)
JS/JQ
$('#myid')
.css('position','relative')
.unbind().die()
.bind('mousemove mouseover',function (e){
var top = parseInt(e.pageY)-$(this).offset().top;
var left= parseInt(e.pageX)-$(this).offset().left;
var pixel= $('<div></div>')
.css({
width:10,height:10,
background: '#fff',
position:'absolute',
top: top, left: left,
'border-radius': 2
});
$(this).append(pixel);
});?
Run Code Online (Sandbox Code Playgroud)
HTML
<div id="myid"></div>
Run Code Online (Sandbox Code Playgroud) 从Internet Explorer发送跨域jquery ajax http请求时,是否可以将http内容类型请求标头设置为'application/json'?
我们正在尝试点击REST WCF服务,该服务在格式化响应时解释请求标头中的内容类型.现在,无论我们在请求标头中放入什么,它总是以XML格式返回数据.
我们尝试使用jquery.iecors.js插件扩展了jquery ajax调用以使用XDomainRequest对象,但仍然忽略了我们的jquery ajax调用中设置的内容类型.
这是我们的ajax调用的样子:
makeGETRequest: function (requestUrl) {
return $.ajax({
type: "GET",
url: requestUrl,
contentType: 'application/json',
dataType:'json',
cache: false
});
}
Run Code Online (Sandbox Code Playgroud) 是否可以在运行时创建新的DataRow对象并向其添加列?
// How can I specify column names for this data row object?
DataRow row = new DataRow();
Run Code Online (Sandbox Code Playgroud) knockout.js ×4
javascript ×3
jquery ×3
.net ×2
knockout-2.0 ×2
rest ×2
ajax ×1
asp.net ×1
caching ×1
content-type ×1
css ×1
cursor ×1
datarow ×1
html ×1
json ×1
linq-to-xml ×1
observable ×1
oop ×1
performance ×1
soa ×1
svg ×1
unit-testing ×1
wcf ×1
web-services ×1
xml ×1