javascript - Knockout - 设置 json 生成的列表中仅一项可见

标签 javascript jquery json cordova knockout.js

嗨,这是一个使用基于 knockout 的 devexpress 框架的 cordova 应用程序,我需要设置列表中仅一项可见

该项目应对应于 param.id 或 this id_agenzia:ko.observable(params.id),

我尝试过使用 jquery(设置 id "#"+$data.id_agenzia 可见 if == id_agenzia ),但如果我集成它不起作用

目标是做这样的事情

如果我输入这一行,它会忽略 如何设置仅与 $data.id_agenzia 对应的 div 可见的正确方法对于 $data.id_agenzia==id_agenzia 有效? 谢谢你的帮助

这是添加了jsfiddle代码的js代码

self.selected_id_agenzia = ko.observable('two');
self.jsonLista = ko.observableArray([
    {id_agenzia:ko.observable('one'), nome:'N1'},
    {id_agenzia:ko.observable('two'), nome:'N2'}
  noDataLabel: noDataLabel,

这是添加了jsfiddle代码的html代码

    <div class="list-indentation" data-bind="foreach:jsonLista" style="padding-bottom:60px;">
        <div id="$data.id_agenzia" data-bind="visible: id_agenzia()==selected_id_agenzia()">
            <div class="agency-description-box" >
                <span data-bind="text: $data.id_agenzia" class="agency-name"></span>
                <span data-bind="text: $data.nome" class="agency-name"></span>
            </div>

        </div>
    </div>

最佳答案

我想我误解了你对变量所做的事情。我做了一个简化的 fiddle 来做我认为你想做的事情。为了让它发挥作用:

  1. 我认为 dxList 或多或少类似于 foreach
  2. 我将外部 id_agenzia 的名称更改为 selected_id_agenzia,因为我无法使用 $data 和 $root 进行比较来区分它们
  3. 我将这两个项目都制作为 ko.observables,并在比较中对每个项目使用了函数调用

    </div>
    

代码全部在 fiddle 中:

http://jsfiddle.net/3ktq4b9s/

关于javascript - Knockout - 设置 json 生成的列表中仅一项可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855014/

相关文章:

javascript - KeyPress水平导航

php - 防止 iframe 窃取

php - 在 PHP 中内爆来自 Json 的数组

jquery - Json 的名字很奇怪

javascript - jquery ui datepicker 允许过去的日期吗?

javascript - React JS 与 Redux 似乎不会重新渲染

javascript - 上下文混合在 $.deferred.promise 中

javascript - 两个 React 组件之间的输入焦点

javascript - XPages CSJS 被执行,而 SSJS 不被执行

javascript - 从 JSON 使用 Jquery 更新下拉列表