不使用按钮显示列表,带有敲除

时间:2013-09-25 20:39:31

标签: javascript jquery knockout.js

我有这个代码来显示单击按钮时的列表。如何在不单击按钮的情况下显示列表?

<button class="btn"  type="submit" data-bind="click: getList">Get List</button>
<ul data-bind="foreach: pList">
    <li>
        <b data-bind="text: $data"></b>  
    </li>
</ul>

define(['sublime/aadConfig','knockout'], function (aconfig,ko) {
    var plugins = ko.observableArray([]);

    var getPlugins = function () { 
        plugins(aconfig.getPluginList());
    };

    return {
        pList: plugins,
        getList: getPlugins
    };
});

2 个答案:

答案 0 :(得分:2)

如果您希望加载列表而无需单击按钮,则只需调用getPlugins;

define(['sublime/aadConfig','knockout'], function (aconfig,ko) {
    var plugins = ko.observableArray([]);

    var getPlugins = function () {

        plugins(aconfig.getPluginList());
    };

    getPlugins(); //<-- This will go populate your plugins observable, which should auto populate your list.

    return {
        pList: plugins,
        getList: getPlugins
    };   
});

编辑

如果您的数组中有对象,那么当您指定在标记中显示$ data时,就会发生这种情况。

[{text:“someText”},{text:“someText”},{text:“someText”}]&lt; - 这将输出[object Object]

[“sometext”,“sometext”,“sometext”]&lt; - 将输出“sometext”

所以它的声音就像你需要在你的标记中说$ data.myDesiredValue或myDesiredValue而不是$ data

答案 1 :(得分:0)

快速解决方案,如果你有jQuery但不是那么漂亮:

$(function(){
    $('button.btn').click();

});