zoukankan      html  css  js  c++  java
  • Knockout 重新绑定注意要点

    function ReImport(id) { //点击按钮时调用函数名称,
            var node = document.getElementById('bindingNode'); //bindingNode 为内部绑定订单子项的div或是table id,每次html(data)后会重新建立
            if (node) {
                $(node).unbind();
                $(node).find("*").each(function () {
                    $(this).unbind();
                });
                ko.removeNode(node);//解绑 
            }
            //http://localhost:7486/Order/EditByIndex?id=61521
            $("#orderdetalis").html('');
            $.get('@Url.Action("EditByIndex")', { id: id, r: Math.random() }, function (data) { //此处action中包含了<div id="bindingNode">
               
                $("#orderdetalis").html(data); //此处orderdetails为本页面的一个div id 注意,如有错误 jquery html()方法不执行
                $("#myModal").modal();
                var node_new = document.getElementById('bindingNode');  //此处bindingNode因为被remove掉,必须再次查找后 绑定到对像
               
                ko.applyBindings(obj1, node_new);
            })
        }
     function AppViewModel() {
            var self = this;
            self.OrderItems = ko.observableArray([]);
            self.removeOrderItem = function () {
                if (confirm('确认删除吗?')) {
                    self.OrderItems.remove(this);
                }
            }
            self.addOrderItem = function () {
                push({ 'ProductName': '', 'ProductCode': '', 'Price': 0, 'Quality': 1 });
            }
            self.TotalAmount = ko.computed(function () {
                var amount = 0;
                var array = self.OrderItems();
                for (var i = 0 ; i < array.length; i++) {
                    var price = getFloat(array[i].Price());
                    var quality = getFloat(array[i].Quality());
                    amount += Math.formatFloat(quality * price, 2);
                }
                return "总金额:" + Math.formatFloat(amount, 2).toString();
            }, this);
        }
    
    
        var obj1 = new AppViewModel();
    
        function push(obj) {
            var itemModel = function (item) {
                var self = this;
                self.ProductName = ko.observable(item.ProductName);
                self.ProductCode = ko.observable(item.ProductCode);
                self.ImportStore = ko.observable(item.ImportStore);
                self.Price = ko.observable(item.Price);
                self.Quality = ko.observable(item.Quality);
            };
            obj1.OrderItems.push(new itemModel(obj));
        }
    
        function buildArray(array) {
            obj1.OrderItems([]);
            for (var i = 0 ; i < array.length ; i++) {
                push(array[i]);
            }
        }
  • 相关阅读:
    一、入门实例
    十四、事物配置
    JAVA-调用http链接
    ORACLE 年龄计算到月份
    ORACLE和MYSQL 去重查询
    JAVA--将图片转为BASE64编码并返回thymeleaf页面
    JAVA--将图片保存至项目路径
    java--获取类加载路径和项目根路径
    excel执行INSERT和UPDATE操作语句
    c# 未能加载Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
  • 原文地址:https://www.cnblogs.com/zyug/p/7838109.html
Copyright © 2011-2022 走看看