jquery - 在计算函数中检索 View 模型值时出现问题

标签 jquery knockout.js

尽管我无法获取从选择下拉列表中选择的值,但我有以下 knockout View 模型,如下所示。我不明白为什么,但我可以使用 jquery 让它工作,但不能从实际的 ko 模型开始工作?!谁能明白为什么这对我来说是一个问题?

http://jsfiddle.net/35SuT/6/

非常感谢! Razor

knockout 设置

(function(ns) {
    var jsonObject = {
        "People": [
          {"Selected":false, "Text":"Tom", "Value":"1"},
          {"Selected":false, "Text":"Jane", "Value":"2"},
          {"Selected":false, "Text":"Sarah", "Value":"2"},
          {"Selected":false, "Text":"Olive", "Value":"3"},
          {"Selected":false, "Text":"Other", "Value":"4"}]};

          var viewModel = new ViewModel(jsonObject);            
          ko.applyBindings(viewModel);

})(namespace("so.question"));

查看模型

var ViewModel = (function (dump) {
    var panels = {
    Area1: {
        peopleArray: ko.observableArray(dump.People),
        peopleSelected: ko.observable(self.peopleSelected) 
    }};

    return panels;
});

这个有效

panels.Area.get = ko.computed(function () {
    return $('#people option:selected').text())  // THIS WORKS
}, this);

失败

panels.Section1.fullName = ko.computed(function () {
    return panels.Section1.)  // BUT THIS FAILS!??
}, this);

标记

<!--This markup does show the array correctly-->
<select id="people" data-bind="options: panels.peopleArray, optionsText: 'Text'"></select>

最佳答案

问题是您不必向控件添加选择事件。有效的方法是订阅选择更改

您可以像这样使用订阅

  viewModel.panels.Area1.peopleSelected.subscribe(function (data) {
            console.log(data)
            panels.Area1.peopleSelected(data);
            //Set selection value to your observable variable
        });

关于jquery - 在计算函数中检索 View 模型值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24401825/

相关文章:

ajax - $http POST 请求使用 AngularJS 将我的数据发送到服务器,但失败并显示错误消息 "not allowed by Access-Control-Allow-Origin"

javascript - 动态更改 DIV 元素的类名称

javascript - 单击项目动画并显示谷歌地图上相关标记的信息窗口

php - 向不同目的地提交两次表格

javascript - 显示HH :MM in input type time

javascript - 如何从输入字段获取值并将其分配给 View 模型中的 JavaScript 对象?

jquery - Keith Wood 带 Knockout 绑定(bind)的 JQuery Datepicker

javascript - 使用 ajax 和 php 下载文件 - readfile 不工作

jquery - Struts Jquery插件: Remote Dialogs With Parameters

javascript - 单击事件不会在新创建的 li 标签上触发