当前位置: 首页 > 知识库问答 >
问题:

敲除模板绑定丢失状态

傅砚
2023-03-14

我正在使用模板绑定来呈现一组单选按钮。元素上还有一个css绑定。

单击单选按钮时,viewmodel

http://jsfiddle.net/d3YJc/1/

<div data-bind="with: point">
    <div data-bind="template: { name: 'template1', data: $data }, css: { 'has-warning': hasAlarm }"></div>
</div>

<script type="text/template" id="template1">
    <!-- ko foreach: choices -->
    <label>
        <input type="radio" data-bind="checked: $parent.value, value: $data" name="test" />
        <span data-bind="text: $data"></span>        
    </label><br/>
    <!-- /ko -->    
    <span data-bind="visible: hasAlarm">Abnormal!</span>
</script>

共有1个答案

能文华
2023-03-14

问题在于选中的绑定的顺序。checked绑定使用元素的值来确定是否应该对其进行检查。当元素第一次绑定时,值由绑定在选中绑定初始化后设置。因此,最简单的修复方法是重新排序绑定。另外,我建议您使用attr绑定而不是value,因为value有额外的开销(它是为文本框设计的双向绑定)。

data-bind="attr: {value: $data}, checked: $parent.value"

http://jsfiddle.net/mbest/d3YJc/2/

敲除3.0还修复了顺序问题(除了注释中提到的渲染问题),因此这是解决此问题的另一种方法。

 类似资料:
  • 问题内容: 我有调用ajax GET的函数。当ajax接收数据(json)时,它将根据给定的json创建KO模型,并返回创建的KO。 创建敲除模型并分配值后,应调用敲除。这是我的代码: 定义和一些相关功能(在“ ” 内部): 这是从另一个文件(GeneralTabl.html)调用的,它应该调用get函数并更新UI: 但是,在这种情况下,我会收到错误消息(CountryName未定义)。这是因为发

  • 我试图访问位于下的属性。所以基本上是一个数组,我要访问属性。 我得到以下错误。 无法处理绑定“text:function(){return process().parent[0].Id}” 无法读取未定义的属性“Id” 我尝试了以下不起作用的方法: 请帮助我如何访问ID。

  • 我使用Knockout。我需要建立一些功能。我从来没用过击倒。 每个视图都有一个视图模型,该模型通过从主视图模型调用。 属性在初始化开始时初始化,并在视图中使用,没有问题。例如: 这样初始化,并在无容器绑定中正确使用,如下所示: 因此,我以相同的位置/方式初始化我的新属性: 并按如下方式使用: 并得到这个错误: 击倒。js:72未捕获引用错误:无法处理绑定“foreach:function(){r

  • 我看不出这里有什么问题,但图像不显示使用以下Knockout模板: 绑定到的对象如下所示: 呈现HTML对象时,我看到标签,单击复选框调用doSomething。 蒂亚。

  • 我试图弄清楚如何使用knockout从html中添加和删除类。 应该发生的是,当我点击卡车时,按钮应该更新为btn红色,而car按钮应该删除btn红色。 我可以看到事件绑定正在工作,因为触发了警报并返回了正确的值,但我无法更新视图。 我编写了一个非常简单的JSFIDLE。net/N8GBB/11/(出于某种原因,stackoverflow不允许我发布链接)以下是我在JSFIDLE中使用的代码

  • 以上是我正在开发的Spark应用程序的主要方法。它涉及两个模板:loginform.ftl和result.ftl。ftl是一个简单的html表单,它向服务器发送post请求,由上面代码中的post处理程序处理。当我填写表单并发送请求时,我得到一个500内部服务器错误。这个错误与result.ftl有关,我现在用它来测试模板的制作。我将一个HashMap传递给result.ftl模板。我得到的错误是