Knockout Js下拉菜单未加载来自WebAPi服务的值
代码如下,请帮帮我。
这是对下拉菜单的knock js调用
<select data-bind="options: menus, optionsText: 'text', optionsValue: 'pk_smartMenuID', optionsCaption: 'Choose...'"></select>Web APi调用
// GET api/SmartMenu
public IEnumerable<SmartMenu> GetSmartMenus()
{
var smartmenus = _db.SmartMenus.Include(s => s.ParentSmartMenu);
return smartmenus.AsEnumerable();
}这是用于联系web api服务器调用的视图模型(脚本
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/knockout")
<script type="text/javascript">
function MenuViewModel() {
var self = this;
var baseUri = '@ViewBag.ApiUrl';
self.menus = ko.observableArray([]);
self.selectedMenu = ko.observable();
self.addMenu = function(formElement) {
// If valid, post the serialized form data to the web api
$(formElement).validate();
if ($(formElement).valid()) {
$.post(baseUri, $(formElement).serialize(), null, "json")
.done(function(o) { self.menus.push(o); });
}
};
$.getJSON(baseUri, self.menus);
}
$(document).ready(function() {
ko.applyBindings(new MenuViewModel());
});
</script>
} 发布于 2013-01-10 21:57:27
由于json数据在链表中需要迭代,所以我在http://knockoutjs.com/documentation/json-data.html中得到了答案
https://stackoverflow.com/questions/14237434
复制相似问题