У меня есть этот код, чтобы показывать список при нажатии кнопки. Как я могу сделать показ списка без нажатия кнопки?
<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
};
});
Если вы хотите, чтобы список загружался без нажатия кнопки, вам просто нужно вызвать 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
быстрое решение, если у вас есть jQuery, но не так красиво:
$(function(){
$('button.btn').click();
});