Knockout结合Bootstrap创建动态UI实现产品列表管理

日期:2016/9/28 14:38:00 来源:本网整理 阅读:0
s">

Knockout结合Bootstrap创建动态UI实现产品列表管理

作者:巴别通天塔 字体:[增加 减小] 类型:转载 时间:2016-09-14 我要评论

这篇文章主要为大家详细介绍了Knockout结合Bootstrap创建动态UI实现产品列表管理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
">

本篇文章结合Bootstrap创建一个比较完整的应用,对产品列表进行管理,包括产品的增加、删除、修改。 

需要的引用 

<script type='text/javascript' src='http://www.see-source.com/js/knockout-2.2.0.js'></script>
<script type='text/javascript' src='http://www.see-source.com/js/jquery-1.6.2.min.js'></script>
<link href="http://www.see-source.com/bootstrap/css/bootstrap.css" rel="stylesheet"> 


Html代码 

<body>
<!-- 动态生成产品列表 -->
<table class="table table-bordered">
  <thead>
   <tr>
     <th>ID</th>
     <th>产品名称</th>
     <th>原价</th>
     <th>促销价</th>
     <th>操作</th>
   </tr>
  </thead>
  <tbody data-bind="foreach: products">
   <tr > 
     <td> 
      <span data-bind="text: $data.Id"></span> 
     </td> 
     <td>  
      <input type="text" data-bind="value: $data.Name"/> 
     </td> 
     <td>
      <input type="text" data-bind="value: $data.Price"/> 
     </td> 
     <td> 
      <input type="text" data-bind="value: $data.ActualCost"/> 
     </td> 
     <td> 
      <input type="button" class="btn" value="修改" data-bind="click: $root.update"/> 
      <input type="button" class="btn" value="删除" data-bind="click: $root.remove"/> 
     </td> 
   </tr> 
  </tbody>
</table>
<!-- 产品添加form -->
<form class="form-horizontal" data-bind="submit:$root.create">
    <fieldset>
     <legend>添加产品</legend>
     <div class="control-group">
      <label class="control-label" for="input01">产品名称</label>
      <div class="controls">
       <input type="text" name="Name" class="input-xlarge">
      </div>
     </div>
     <div class="control-group">
      <label class="control-label" for="input01">原价</label>
      <div class="controls">
       <input type="text" name="Price" class="input-xlarge">
      </div>
     </div>
     <div class="control-group">
      <label class="control-label" for="input01">促销价</label>
      <div class="controls">
       <input type="text" name="ActualCost" class="input-xlarge">
      </div>
     </div> 
     
     
     <div class="form-actions">
      <button type="submit" class="btn btn-primary">保存</button>
      <button class="btn">取消</button>
     </div>
    </fieldset>
</form>
</body>

js代码 

<script type="text/javascript">
function ProductsViewModel() { 
  var baseUri = 'http://localhost:8080/knockout/'; 
  var self = this; 
  //self.products = ko.observableArray([{'Id':'111','Name':'联想K900','Price':'3299','ActualCost':'3000'},{'Id':'222','Name':'HTC one','Price':'4850','ActualCost':'4500'}]); 
   self.products = ko.observableArray();
  
  $.getJSON(baseUri + "list", self.products);//加载产品列表

  //添加产品
  self.create = function (formElement) {       
    $.post(baseUri + "add", $(formElement).serialize(), function(data) {
       if(data.success){//服务器端添加成功时,同步更新UI
        var newProduct = {};
        newProduct.Id = data.ID;
        newProduct.Name = formElement.Name.value;
        newProduct.Price = formElement.Price.value; 
        newProduct.ActualCost = formElement.ActualCost.value; 
        self.products.push(newProduct);
       }
    },"json"); 
  } 
  //修改产品
  self.update = function (product) {
    $.post(baseUri + "update", product, function(data) {
       if(data.success){
         alert("修改成功");
       }
    },"json"); 
  } 
  
  //删除产品
  self.remove = function (product) { 
    $.post(baseUri + "delete", "productID="+product.Id, function(data) {
       if(data.success){
        //服务器端删除成功时,UI中也删除
        self.products.remove(product);
       }
    },"json"); 
    
  } 
}
ko.applyBindings(new ProductsViewModel());

</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持突袭网。

  • 本文相关:
  • AngularJS 表达式详解及实例代码
  • 再谈javascript注入 黑客必备!
  • jQuery实现可拖拽的许愿墙效果【附demo源码下载】
  • 什么是JavaScript注入攻击?
  • jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
  • AngularJS 指令的交互详解及实例代码
  • Bootstrap精简教程中秋大放送
  • Node.js connect ECONNREFUSED错误解决办法
  • js点击按钮实现水波纹效果代码(CSS3和Canves)
  • 基于JS+Canves实现点击按钮水波纹效果
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved