我有一个模板,看起来像这样:
var viewContext={
nodeClicked:函数(事件){
var target=$(event.target)
var data=target.tmplItem().data
viewModel.currentNode(数据);
}
};
${Name}
如果observable包含的值等于用于呈现该元素的数据对象的值,那么我想将css类应用于HTML元素。我的问题在于我将viewModel的可观测值与当前数据项进行比较的部分。我试过:
${N
救命,我卡住了!
我试图在knockout.js中完成一项简单的任务。基本上,我想让一个项目数组在一个表中生成一系列行。我正在使用jquery和jquery.tmpl.js。我以前做过很多次,但由于某种原因,它不起作用。这是我的密码
ASPX页
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.
如何使用knockout.js 1.3.0 beta强制完全重新呈现模板
我已经在2.1中成功地做到了这一点,使用了jquery模板的{{each}}类
但是既然1.3.0不再使用jquery模板,我该怎么做呢
在本机敲除模板中{{each}是否有任何等价物,而不使用数据绑定调用.valueHasMutated()。这告诉了KokOutt,它需要将数据视为修改的,因此需要重新渲染。
这在jquery模板部分也非常有效
我对knockoutjs非常陌生——已经完成了教程
我已经有了一个很好的开始。我有一份似乎很合适的申请
托科。在这种情况下,我需要用JSON中的数据填充一个表。这
数据是嵌套的,并且可以嵌套在任何深度,但我的API只会
曾经返回两级深的数据
例如
节点1
节点A
节点B
我已经设法把数据加载到我的表中了,可爱的。我已经吃过了
这更进一步,并且支持嵌套。我有一个要求,如果一个节点有子节点,它可以被注入到表的节点下面
这方面的一个例子是
节点1(HasChildren)
节点A
我有两个自定义绑定要拖放,并且有一个元素列表,我需要将这些元素拖放到一个可拖放区域中,但是当发生这种情况时,我需要从源列表中删除被拖动的元素,我的操作方式如下,但是当从源列表中删除被拖动的元素时,我收到以下错误“无法获取属性“options”的值:对象为null或未定义”,调试器在我的jquery-ui.1.8.17.min.js文件中的这一行var d=a(this).data(“draggable”).options。问题发生在拖动绑定中
这是我的密码:
var viewModelInst
当下面的foreach被绑定时,我需要能够让一个视图从$.get或只是硬编码向“body”div添加html。我需要的“模型”是那个虚拟机,但我不知道如何让虚拟机添加html到页面
<!--ko foreach:modules -->
<div class="module" data-bind="attr: {id:id}">
<div class="head" data-bind="text:title"></div>
<d
我正在使用express,我听说witch允许您绑定dom元素和javascript对象
我正在使用JADE模板引擎与express。我认为使用jade和knockOut可能有点棘手
在你看来,什么是最好的解决方案?好吧,我不是一个真正的击倒者,也不是一个熟练的Jade用户,但这可能是可行的,尽管我不会这样做,但最终这只是一个选择和支持的问题
对我来说,合适的解决方案是使用Hogan编译的胡须模板,并使用主干或脊椎作为MVVM。然而,最近我做了很多Ruby而不是node,我发现自己在客户端使用E
我使用KnockoutJS填充了剑道组合。我正在使用Knockout-Kendo.js来实现这一点
我有两个地址,k1地址和邮寄地址:
对于这两个地址,如果您从“州”组合框中选择一个州,则该“国家”组合将被启用,并选择“美国”
如果从“状态”组合框中删除状态,或者手动键入不存在的状态,则将启用“国家/地区”组合框。如果您选择美国以外的任何国家,州组合框将被禁用
我为k1地址工作
<input data-bind=" kendoComboBox: { enabled: k1Address.
我把头撞在墙上,想弄明白为什么我不能让它工作。我试着遵循许多例子,并将我尝试过的所有东西精简到下面的内容
因此,在我的aspx页面上,我有:
个人
以下是我的javascript:
var serviceBase = 'http://localhost:49906/PopulationSelection.aspx/';
var getSvcUrl = function (method) { return serviceBase + method; };
var ajaxGetJson = fu
KnockoutJS开发人员需要采取一种通用方法或至少一组步骤来为简单的jquery插件创建绑定
例如,如果插件在“公共代码”中像这样触发:
$('#tag1')。tagsInput({
//我的参数在这里
});
这个插件最简单的自定义KO绑定是什么样子的 以下是一种常见的方法,例如jQuery按钮:
ko.bindingHandlers.jqButton = {
init: function(element, valueAccessor) {
var options
我使用KnockoutJS视图模型填充HTML select元素,如下所示:
<select data-bind="options: $data.answers, optionsText: function(item) { return item.text }, value: selectedAnswer, optionsCaption: 'Choose...'"></select>
这可以在KnockoutJS中完成吗?我很难找到解决这个问题的办法
编辑:
我刚刚尝
尝试在自定义绑定处理程序中执行一次函数,以根据某些div的内容调整其大小。我可以在angularjs中轻松实现这一点,但我正在尝试找到类似于击倒的$evalAsync
有没有这样的功能我可以挂上
它适用于koGrid 2.0自动宽度。现在它只在单页应用程序上有效,因为我正在连接到文档。就绪:(
是否可以使用afterRender回调
你到底想做什么?只是根据一些内容调整div的大小?我觉得我没有足够的信息来回答你的问题。但是,我确信,无论你习惯怎样做,尝试去做击倒比赛就像试图以你习惯于骑独轮车
我对淘汰js和带有层次视图模型的映射插件有问题
我的viewmodel的结构有点像这样:
VM = {
members:[
{
name:"name 1",
volunteering:[{...},{...},{...}]
},
{
name:"name 1",
volunteering:[{...},{...},{...}]
}
在我真正的web应用程序中,我有一个显示文件夹的树,在某些情况下,我会在jQuery UI对话框中显示此树。我已经尽我所能,在这本小提琴上举了一个例子:
如果单击按钮1,将切换对话框的可见性
如果单击按钮2,将切换内嵌(无对话框)列表的可见性
我的大部分测试都是在Firefox中进行的。单击按钮1大约需要1.5秒来显示或隐藏(即使隐藏也很慢)。点击按钮2几乎是即时的
这是jQuery UI对话框的一个问题。在每次隐藏/显示时,它对DOM有很大影响吗?或者它只是一个问题,因为我有一个模板内?KO
在用户选择li标记时,更改class=“DarkColour”
如何在knockout中做到这一点?我建议大家去阅读knockout中的CSS绑定。
你可以这样做:
<li class="LightColour">
真的帮不了你更多,因为你的问题很模糊,没有代码供我使用
<li data-bind="css: yourComputedVariable">
我是findign,ko.toJSON正在创建一些不需要的东西,比如:
复制属性
毁灭
这些有什么意义?默认情况下我可以删除它们吗?如果您正在使用,则应使用插件的转换方法,例如
ko.mapping.toJSON
及
ko.mapping.toJS
而不是内置的ko.toJSON和ko.toJS
因为方法的映射版本将采用插件本身内部使用的附加属性
演示。如果您的模型是尚未使用映射插件完全创建的“混合”模型,则使用ko.mapping.toJSON可能不会删除您所期望的\uuuuuuuuuuuu
我有可观察的数组,它们绑定到UI上的html字段
但是,对UI上这些字段的更改不会反映在viewmodel中,因为根据淘汰文档,observableArray跟踪数组中的对象,而不是这些对象的状态
代码如下所示:
var RewardMissionModel = function () {
var self = this;
self.achievementID = ko.observable();
self.rewardAsset = ko.observable();
这令人费解。这是一把小提琴
我有一个简单的viewmodel,它包含一个计算的可观察对象。如果某个特定的私有变量_editing设置为true,则计算出的可观测值将返回“”。现在,编辑是不可观察的。如果_editing为false,那么计算出的可观察对象将查看一个可观察对象并返回一个计算值
var expressionItem = function(){
this.id = 10;
this.value = ko.observable()
};
var vm = functi
我要用“击倒”和“咖啡脚本”。下面是简单的示例代码
**** coffeescript ****
class NewsItem
constructor : (content) ->
@content = ko.observable(content)
class ViewModel
constructor : ->
@items = ko.observableArray()
我知道有更好的模式,但在本例中,我们希望将一些遗留代码转移到视图中。这个html有一个
<script src="binding.js"></script>
我相信durandal视图合成引擎只使用视图中的第一个html元素,而忽略了其他所有内容。因此,如果您的脚本标记在视图中的主容器之外,我认为它会被删除
您可以发布一些html/js供审阅吗?您可以为此使用自定义的敲除绑定
这里有一个非常简单的绑定-请记住这只是一个想法:
ko.bindingHandlers.scr
我尝试使用knockbackjs(knockoutjs+backbonejs),其中模型是一个2d数组)ie表,并且viewModel使用foreach绑定到一个表html标记,因此我将得到一个可观察的表,每次单击一个单元格都会将整个2d数组发送到api
我一直在用一个我问过的例子来研究这些问题,并得出如下结论:
//model
var GameModel = Backbone.Model.extend({ urlRoot: '/game' });
//viewmode
我正在使用敲除填充表中的数值:
HTML:
现在我如何显示以十进制格式填充的数字,比如.00?
10点
目前它只显示数字,例如10,您可以考虑编写一个自定义扩展器来处理这个问题
基本扩展器类似于:
ko.extenders.numeric = function(target, precision) {
var result = ko.computed({
read: function() {
return target().toFixed(prec
我是个新手,现在仍在学习。
我有一个简单的页面,用户可以添加和删除项目。名为“deleteItem”的“delete”函数适用于版本1代码,但不适用于版本2代码。请帮我了解背后的原因。提前谢谢
顺便说一下,版本2的代码来自链接底部附近的注释7
版本1的代码来自同一链接的示例2
我的密码详情:
两个版本之间的区别是:
在版本1中,属性“myItems”是具有“name”属性的对象数组。
在版本2中,属性“myItems”是一个没有任何属性的元素数组。那些数组元素只是文字字符串
版本1代码:名为“d
当我从我的客户列表中删除选定客户时,如下所示:
var selectedRow = self.Selected();
customers.remove(selectedRow);
为什么我必须显式地将所选对象设置为null
self.Selected(null);
…因为下次我单击“删除客户”按钮时,以前删除的客户仍然会从Selected()observable返回???我从您的代码片段中假设您通过说self.Selected(mySelectedValue)来填充
在代码中,您正在从数组中
我正在构建一个巨大的页面,页面上有10个不同的部分,我正在使用Knockout进行事件绑定,等等
每个部分都包含一个表单,它有自己的viewModel,还有它的字段和验证属性等。我在阅读了关于多视图模型的文章后对其进行了模式化
我有一个masterViewModel,可以导入很多子ViewModel。这一切都很好,我可以设置可观察的元素,根据字段输入自动填充,等等
我将表单绑定到viewModel中的一个函数,如下所示
在我验证并保存表单字段(通过ajax post)之后,我想将该部分设置为只读
我有一个koGrid,我只想从行中选择一些单元格(2个单元格)。如果使用canSelectRows:true属性,我可以选择整行-我不需要这个。如何从网格行中选择某些单元格
网格源:
this.gridOptions = {
data: self.people,
enablePaging: true,
pagingOptions: self.pagingOptions,
useExternalSorting: true,
全新的淘汰赛,不知道是否有人可以回答我的问题
有没有一种方法可以处理属性在绑定到页面上的元素时命名相同的viewmodels。e、 g
<input data-bind="value: prop1" />
function vm1(){
this.prop1 = something
}
function vm2(){
this.prop1 = something
}
ko.applybindings(new vm1());
ko.applybindings(new vm
我有一个简单的textarea,我想自定义它的文本(比如添加分隔线),这就是我迄今为止所尝试的:
<textarea rows="5" data-bind="value: function(data) { SetDefaultValue(data); }" />
但我什么也得不到
当检查结果HTML时,它找不到value属性,并且没有JavaScript错误。如何将textarea的value属性绑定到函数
您需要做的是使用计算机修改textarea值,如下所示
<tex
在我开始使用嵌套对象之前,我一直遵循简单编辑器模式,一切都按预期进行
基本上,当我选择一个项目时,我在viewmodel上设置了两个属性。一个选择editem属性和一个可编辑属性。它是可编辑属性,然后我对其进行更改。如果用户接受更改,则所选项目将更新
如果我有一个平面对象,这在我的代码中可以很好地工作。但是,当我有嵌套对象时,子对象数据在指定给“可编辑”特性时不正确
我应该看到:
"Selected": {
"Id": 1,
"Name": "user 1",
"Role
我有一个Windows窗体程序(比如Paint.NET),我想把它移植到web客户端应用程序中
我已经开始使用knockout.js,它似乎(虽然不是完全确定)能够完成这项工作。然后我听说了打字脚本。从描述中可以看出,它是为了“应用程序级Javascript开发”。我没有足够的资源来评估两者
knockout.js或TypeScript是更好的选择吗?或者它们不可比
谢谢。TypeScript是一种编译成javascript的语言,Knockout是一个MVVM javasript库,可帮助您组
我试图实现简单的分页,但不知道我做错了什么
这是我的
search.html
<ul data-bind="foreach:leases">
<li data-bind="text: leaseID"></li>
</ul>
<button class="btn" data-bind="click: next">Next</button>
<div data-bind="dump: $data.leases
使用模板和foreach的这段绑定失败:
<div data-bind="template: { name: 'tmplA', foreach: { data: items } }">
</div>
<script id="tmplA" type="text/html">
<h1 data-bind="text: text"></h1>
</script>
显示错误的小提琴:
我使用foreach:{data:
我有以下视图,它呈现子视图的两个副本,正如您所看到的,它们绑定到父视图模型上的两个属性
<div class="row">
<div class="col-sm-4" data-bind="with: primaryPerson">
<h5 data-bind="visible: $root.isMirror">You</h5>
@{Html.RenderPartial("_PropertyQuestion
我在玩SVG。我有一个复选框。如果选中,我希望使用一个文本路径并在其上显示文本。如果未选中该复选框,我希望只显示文本,而不显示文本路径
问题在于,如果应该有textpath,那么数据绑定属性应该位于text元素上:
<text font-size="46" fill="red" font-family="Verdana" data-bind="text: customTextValue">
</text>
JsFiddle:
这里可以做什么?复选框的绑定是选中的,而不
我有一个由ajax调用构建的人员数组
var people = GetPeople();
viewModel.people = ko.mapping.fromJS(people);
每个viewModel.people都包含名字、姓氏、电子邮件和电话。我试图将每个名字值绑定到select语句,如下所示:
<select data-bind="options: viewModel.people, optionsText: FirstName"></select>
我正在尝试使用knockout 3.0.0和tinymce 4.0.18
我想创建一些东西:很少有可编辑的元素(这里有3个),但这些元素是从敲出来的。在没有tinyMCE的情况下这样做不是问题(这里是)
但当我试图通过这样做来实现同样的目标时:
function ViewModel() {
var self = this;
self.editableAreas = ko.observableArray([{
id : 1,
txt: ko.obse
我一直在与KendoUI/Knockout集成进行斗争
我的要求:
有两个KendoUI日期选择器元素(开始日期和结束日期)。结束日期应为只读,并且应为计算值
用于捕获月份值的KendoUI NumericTextBox元素(句点)
插入NumericTextBox值时,它应自动添加到结束日期的月份值
我的尝试(请忽略表的使用):
HTML
JSFiddle:
由于您使用的是敲除,因此无需手动从控件中获取值,您只需使用viewmodel中显示的值,即可通过以下方式计算结束日期:
this.com
我有一个viewmodel,它有一个observable,我在上面应用了一些验证
现在,当我使用自定义validationMessage绑定来显示错误时,我在ko验证库中得到以下错误:
<script type="text/html" id="TEXTBOX_Template">
<input type="text" data-bind="value: question().s_answer" />
<span class="validationMe
我有以下格式的视图模型,需要以以下格式渲染数据。你能帮我把下面的表格格式进行绑定吗
var data = {"MonthlySummaries":
[
{"Name": "Jan", "BeginBalance": "1000", "Usage": "100", "EndBalance": "900"}
,{"Name": "FEB", "BeginBalance": "900", "Usage": "100", "EndBalance": "800"}
,{"Na
我在CategoryModel集合上有一个可排序枚举(可拖动的插件,它扩展了foreach),该集合有一个CanCategoryBeDeleted计算方法。此功能用于使按钮启用或不启用对于集合中的第一个项目,它可以工作,但是对于第二个项目,它失败,并出现以下错误。该系列中的所有类别模型看起来都不错。取出启用标记将按预期呈现集合
未捕获引用错误:无法处理绑定“sortable:函数”
(){return{data:categories,afterMove:$root.orderCategories
我有一个绑定到html select的observableArray:
<select name="cars-list" data-bind="options: cars, optionsText: 'name', optionsValue: 'id', value: selectedCar"></select>
在推到observableArray之后,我立即发出了一个警报,果然,每当我选择一个项目时,长度都会增加1
但是,html select控件没有反映此更改。它
我有一个包含问题集合的下一个ViewModel,其中包含答案集合。
我试图绑定第一个集合中的文本和元素-问题看起来正确。我一点也不想念你。
实际上,在这个示例中是需要映射的Javasctip模型。我的viewmodel如下所示:
function VM(){
this.PoolText = ko.observabe();
this.Qusetions = ko.observableArray([]);
this.Qusetions.Answers = ko.observableArr
我在页面上有一条消息,指示用户选择至少五个项目。我希望一旦用户选择了五个项目,消息就会消失
<span class="message" data-bind="text: messageToChooseAtLeastFiveItems, disable: hasSelectedFiveItems"></span>
为什么跨距内的文本仍然出现
JSFiddle
你应该这样做
查看:
<select multiple="true" data-bind="options:
我在一个可观察对象上调用了extender,其中包含舍入逻辑,在订阅中还包含业务逻辑。问题是,当该可观察对象的值发生更改时,会调用第一个扩展程序并更改该值(但不会在视图中更新)。同时调用subscribe,如果在subscribe中更改了同一个可观测值,这是最新的更改,但它没有设置为可观测值
ko.extenders.scale = function(target, precision) {
var result = ko.computed({
read:target,
我有一些页面,其中我的Knockout viewmodel根据用户输入的数字字段执行摘要计算。我有适当的数字验证规则
但是,如果用户输入一个非数值,模型必须接受该值,以便进行验证以完成其工作。因此,非数值流入汇总计算,结果不理想
我希望数值验证规则能够防止非数值数据进入我的viewmodel。有什么方法可以实现这种行为吗
我意识到我可以使用ko扩展器或输入掩码来拒绝非数字输入,但我更希望用户收到错误通知并自行修复,我使用的典型解决方案不是简单地恢复用户在输入字段中的输入。我使用的典型解决方案是将
我正在使用淘汰AMD助手项目,这是很好的,因为我可以更好地模块化我的淘汰模块
我的问题是,它似乎完全隐藏了错误。这在小项目中并不是什么大问题,但随着项目的发展,如果控制台中可以看到错误,这将是很有帮助的
所以我刚刚遇到了一个情况:
<div data-bind="click: doStuff">
<!-- Lots of other html -->
</div>
如果DOSTUF功能不存在,则整个模块将无法工作。显然,一旦知道错误,就可以很容易
我是敲除的新手,我试图显示一个包含mtdb数据的表。
在我的控制器(DriversController)中,我有以下代码:
public JsonResult GetAllDrivers()
{
db.Configuration.ProxyCreationEnabled = false;
List<Driver> drivers = db.Drivers.ToList();
return Json(drivers, JsonR
以下是视图模型(auth.js):
和视图:
<li><a href="#" data-bind="visible: isAuth">User</a></li>
我一直在isAuth上遇到错误,我是敲除新手,所以我不太了解它。工作正常:也许你可以比我更改代码的“错误”更明确。绑定没有问题。错误说明了什么?按照给定的方式工作正常:也许您可以比我更改代码的“错误”更明确。您的绑定没有问题。错误说明了什么?
<li><a href=
因此,我有一个表,其中有两个下拉列表(每行),我正在使用knockout和select。我希望能够禁用或删除已选定的选定选项
多亏了@Jason Spake,我才能够从中理解这个问题。但是,提供的解决方案并不理想,因为我不想将根模型传递给子模型。有人能帮忙想出解决办法吗
谢谢大家! 我利用上一个问题中您的想法拼凑了另一个片段,使用disabled属性,而不是完全删除项目。Knockout有一个名为optionsAfterRender的方便的选择选项绑定,它允许您对生成的选项进行一些后期处理
k
我有以下资料:
<tbody data-bind="foreach: { data: MenuItems, as: 'tableitem' }">
<tr>
<td data-bind="html: tableitem.label"></td>
1 2 3 4 5 6 ...
下一页 最后一页 共 79 页