jQuery 1

执行之后

Knockout不限量你用任何技术加载和封存数据。你能够运用别的技术和服务器来交互。用的最多的是选取jQuery的Ajax支持,例如:getJSON,post和ajax。你能够因此这个艺术从服务器端获取数据:

该view model包括observable类型的值,依赖类型的值dependent
observable以及借助数组observable
array,和平凡对象。你能够像如下代码一样使用ko.toJSON将此转化成服务器端使用的JSON
字符串:

照旧,类别化以前,你想取得JavaScript不难对象的话,直接动用像这么同样使用ko.toJS:

加载或保存数据

jQuery 2

声称2个view model:

jQuery 3

  1.ko.toJS — 克隆你的view model对象,并且替换全部的observable
对象为最近的值,那样你能够获取1个根本的和Knockout非亲非故的数量copy。

或许向劳动器端发送数据:

先看以前的值

返回的JavaScript对象为

jQuery 4

鉴于view
model都以JavaScript对象,所以你须求使用正规的JSON种类化学工业具让转账view
model为JSON格式。例如,能够使用JSON.serialize()(新本子浏览器才支撑的原生方法),或然选拔json2.js类库。可是你的view
model可能包涵observables,正视对象dependent
observables和observable数组,有十分的大可能率不可能很好的种类化,你须要协调额外的拍卖一下多少。

要么,假若你不想用jQuery,你可以用别的别的的法子来读取或保存JSON数据。所以,Knockout要求你做的只是是:

1经您从服务器端获取数据并且更新到view
model上,最简便易行的章程是协调完结。例如

    var jsonData = ko.toJSON(viewModel);
    alert(jsonData);
<script type="text/javascript">
    var viewModel = {
        firstName: ko.observable("Aehyok"),
        lastName: ko.observable("Leo"),
        pets: ko.observableArray(["Dog", "Cat", "Fish"]),
        Type:"Customer"
    };

    view.hasALotOfPets = ko.dependentObservable(function () {
        return this.pets().length() > 2;
    }, viewModel);
    ko.applyBindings(viewModel);
</script>

Knockout能够兑现很复杂的客户端交互,不过差不离拥有的web应用程序都要和劳动器端交流数据(至少为了本地存款和储蓄必要类别化数据),调换数据最利于的正是利用JSON格式
– 大多数的Ajax应用程序也是运用那种格式。

  贰.ko.toJSON — 将view model对象转化成JSON字符串。原理便是:先调在view
model上调用ko.toJS,然后调用浏览器原生的JSON
种类化器得到结果。注:壹些老浏览器版本不辅助原生的JSON
种类化器(例如:IE7和原先的本子),你要求引用json2.js类库。

使用JSON更新ViewModel数据

var plainJs = ko.toJS(viewModel);

过多情状下,最直白的不二等秘书诀就是最简单易行而且最灵敏的方式。当然,假使您更新了view
model的性情,Knockout会自动帮您更新相关的UI成分的。

    对于加载,更新您收到到的多少到你的view model上。

然则,很多开发职员照旧喜欢使用1种好用而不是每回都写代码的方法来转化数据到view
model上,尤其是view
model有很多属性可能嵌套的数据结构的时候,那很有用,因为可以节约很多代码量。knockout.mapping插件可以帮你达成这点。

jQuery 5

var data = {} ;   /////JSON数据格式的data
$.post("/some/url", data, function(returnedData) {
    ////如果向服务端发送数据成功,那么此回调函数就会被执行
})

jQuery 6

返回的JSON数据为

    var someJSON = '{ "firstName": "Aehyok1","lastName": "Leo1"}';
    var parsed = JSON.parse(someJSON);
    debugger;
    viewModel.firstName(parsed.firstName);

前言

jQuery,    对于保存,让你的view
model数据转换到简单的JSON格式,以方便使用上边的技能来保存数据。

$.getJSON("/some/url", function (data) {
   ///可以使用Data来更新ViewModel,并且通过Ko来更新UI元素 
};

为了使view
model数据类别化方便(包蕴连串化observables等格式),Knockout提供了二个援救函数:

转化ViewModel数据到JSON格式

相关文章

网站地图xml地图