首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何恢复由基因敲除映射绑定的基因敲除可观测值

如何恢复由基因敲除映射绑定的基因敲除可观测值
EN

Stack Overflow用户
提问于 2013-03-22 23:26:01
回答 1查看 308关注 0票数 2

我已经使用knockout映射插件将我的json数组绑定到knockout

JSON

代码语言:javascript
复制
{
   "info":[
      {
         "Name":"Noob Here",
         "Major":"Language",
         "Sex":"Male",
         "English":"15",
         "Japanese":"5",
         "Calculus":"0",
         "Geometry":"20"
      },
      {
         "Name":"Noob Here",
         "Major":"Calculus",
         "Sex":"Female",
         "English":"0.5",
         "Japanese":"40",
         "Calculus":"20",
         "Geometry":"05"
      }
   ]
}

使用knockout-mapping plugin绑定

代码语言:javascript
复制
var data = [];
$.each(data1.info, function (index, element) {
            data.push({
                English: element.English,
                Japanese: element.Japanese,
                Calculus: element.Calculus,
                Geometry: element.Geometry,
                name: element.Name,
                major: element.Major,
                sex: element.Sex
            });
        });

        dataFunction.prototype = function () {
            var getAllItems = function () {
                var self = this;
                ko.mapping.fromJS(data, {}, self.Items);
            };

现在我想提醒一下英语的价值。

我在dataFunction.prototype中尝试了alert(this.English());,但它不起作用。

如何提醒该值?

JS-Bin代码:http://jsbin.com/ipeseq/4/edit

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-23 05:00:57

你需要定义一个合适的视图模型,并在你的标记中使用它。

我将一个视图模型与一个自定义视图模型映射组合在一起,将您的数据映射到我称为“Student”的对象中,以便在您的标记中使用。我用一个计算总数的ko.computed扩展了这个对象(在这个对象中,您可以读取和操作您的观察值)。

代码语言:javascript
复制
 var Student = function(data) {
 var self = this;
 ko.mapping.fromJS(data, { }, self);
 self.total = ko.computed(function() { // Calculate total here
   return self.English() + self.Japanese() + self.Calculus() + self.Geometry();
    });
 };

var viewModelMapping = {  // Map all objects in 'info' to Student objects
'info': {
 create: function(options) {
        return new Student(options.data);
        }
    }
};

var ViewModel = function(data) {  // Create a view model using the mapping
    var self = this;
    ko.mapping.fromJS(data,viewModelMapping,self);
}

$(document).ready(function () {
    vm = new ViewModel(data);
    ko.applyBindings(vm);
});      

您可以看到生成的JSBin代码here

您可以在使用“create”的定制对象构造和使用“update”定制对象更新部分here中阅读更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15574032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档