0

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

<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
    };
});
4

2 回答 2

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"}] <-- 这将输出 [object Object]

["sometext","sometext","sometext"] <-- 会输出 "sometext"

所以听起来你需要在标记中说 $data.myDesiredValue 或只是 myDesiredValue 而不是 $data

于 2013-09-26T16:18:50.863 回答
0

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

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

});

于 2013-09-25T22:53:58.910 回答