knockout - 在json生成的列表中只设置一个项目

时间:2015-04-24 18:33:57

标签: javascript jquery json cordova knockout.js

嗨,这是一个使用基于淘汰赛的devexpress框架的cordova应用程序我需要在列表中只设置一个项目

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

我尝试过使用jquery(设置id"#" + $ data.id_agenzia如果== 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>

1 个答案:

答案 0 :(得分:1)

我想我误解了你在做变量的事情。我做了一个简化的小提琴,做我认为你想要的。为了使它工作:

  1. 我假设dxList或多或少像foreach
  2. 我将外部id_agenzia的名称更改为selected_id_agenzia,因为我无法使用$ data和$ root进行比较以区分它们
  3. 我做了两个项目ko.observables,并在比较中使用了每个函数调用

                                                    

    </div>
    

  4. 代码全是小提琴:

    http://jsfiddle.net/3ktq4b9s/