knockout --- foreach -- 前端必备

  好久好久没写博客了,丫的,节操掉一地了,颓废了,惭愧。javascript

 

  好久好久没有弄 knouckout.js 了,今天从新操做,蛋疼啊,忘记得差很少了,因而只好硬着头皮再去看官网,因而,feel慢慢回来了。html

 

  原本不打算用 knouckout 的了,可是人都是懒惰的,何况我一直信奉,不懂偷懒的程序员不是好的程序员!前端

 

  若是不偷懒,就写一大堆的js,之后维护也是很痛苦的。。。java

 

  这里不讨论基本语法什么的,官网上一堆堆的,亲们本身去找吧~ 官网程序员

 

  另外,想打算开个一系列的 knouckout,好好总结本身的所学,解放众多的那些作后端又要作前端的 程序猿,谁要看,给我32个赞,就开始写。开玩笑了,没有拉广告的嫌疑,等项目告一段落了就开始着手写了,不过也已经有人写了,我但愿写点不一样的。ajax

 

这里是汤姆大叔的:猛搓我json

 

  看效果图:后端

 

1.前端代码:数组

 1 <div class="modal-body" data-bind="foreach: job">
 2                     <div>
 3 
 4                         <div class="panel-group" id="accordion">
 5                             <div class="panel panel-default">
 6                                 <div class="panel-heading">
 7                                     <h4 class="panel-title">
 8                                         <a data-toggle="collapse" data-toggle="collapse"
 9                                             data-bind="text:title" data-parent="#accordion"
10                                             href="#collapseOne"> </a>
11                                     </h4>
12                                 </div>
13                                 <div id="collapseOne" class="panel-collapse collapse in">
14                                     <div class="panel-body" data-bind="html:content"></div>
15                                 </div>
16                             </div>
17                         </div>
18                     </div>
19 
20                 </div>
View Code

 

2.jsapp

var viewModel = {
job: ko.observableArray([ ])
};
ko.applyBindings(viewModel);

  

3.ajax里传值回来后处理:

viewModel.job(j);

  OK,以上代码搞定了!原本要不少js代码写的循环,如今在 knockout 的帮助下,一切都变得美好了!

 

犯过的错误:

1.不能重复绑定同一个元素,由于每次ajax后都会从新执行代码,代码以下(是该错误的代码):

ko.applyBindings({
		job : j,//这里的j是个人ajax 返回的 json数组
	});

2.基于以上错误,想到了清除绑定,可是结果就是,每次ajax请求,数据都会翻倍,好比说:我原先只有3条记录的,可是ajax后就变成6条记录了,显然不是我想要的,代码以下:

ko.cleanNode(document.body);
    ko.applyBindings({
		job : j,
});

 

解决方案在一开始的时候就已经有了,以此谨记,另外,最近得恶补 English 了,发现看 English 少了之前的感受了。

欢迎拍砖,转载请标明出处!

有问题能够请教,本人QQ:651936145,请说明备注:knockout 探讨。

相关文章
相关标签/搜索