I have a dropdownlist, the value of the dropdownlist is bind in the Account. I need another dropdown which is based on the value of the Account every time it change. Can I add subscribe to the Account so that every time it change I can add a code on it to populate the other dropdown?

我有一个下拉列表,下拉列表的值在帐户中绑定。我需要另一个下拉列表,它基于每次更改时帐户的价值。我可以添加订阅帐户,以便每次更改时我都可以在其上添加代码以填充其他下拉列表吗?

 var riskRegisterViewModel = function () {
    var self = this;
    self.Site = ko.observable();
    self.Program = ko.observable();
    self.Department = ko.observable();
    self.AuditType = ko.observable();
    self.Auditor = ko.observable();
    self.Status = ko.observable();
    self.ScheduleClause = ko.observable();
    self.AuditDateFrom = ko.observable();
    self.AuditDateTo = ko.observable();
    self.RiskRegisterArray = ko.observableArray();

    self.AuditTypeList = ko.observableArray(GetAuditType()); // This will handle the Audit Type Of the Modal dialog          
    self.ProjectList = ko.observableArray(GetProject()); // This will handle the Account Model

    self.RetrieveRiskRegister = function () {
        var riskRegister = GetRiskRegister(self.Site(), self.Program(), self.Department(), self.Status(), self.AuditType(), self.Auditor(), self.AuditDateFrom(), self.AuditDateTo());
        self.RiskRegisterArray($.map(riskRegister, function (item) {
            return new MapRiskRegister(item);
        }));
    };
    self.selectedRisk = ko.observable();
    self.selectRisk = self.selectRisk.bind(self);
    self.itemForEditing = ko.observable();

};
ko.utils.extend(riskRegisterViewModel.prototype, {
    // select an item and make a copy of it for editing
    selectRisk: function (item) {
        var self = this;
        self.selectedRisk(item);
        self.itemForEditing(new MapRiskRegister(ko.toJS(item)));            
    }
});

var riskRegisterVM = new riskRegisterViewModel();
ko.applyBindings(riskRegisterVM);
riskRegisterVM.itemForEditing.Account.subscribe(function () {
    console.log("Hello");
});
function MapRiskRegister(item) {
    var self = this;
    self.SeriesNumber = ko.observable(item.SeriesNumber);
    self.RiskRegisterEntryId = ko.observable(item.RiskRegisterEntryId);
    self.RiskRegisterTypeId = ko.observable(item.RiskRegisterTypeId);
    self.RiskRegisterType = ko.observable(item.RiskRegisterType);
    self.AuditDate = ko.observable(moment(item.AuditDate).format("MMMM DD, YYYY"));
    self.ScheduleClause = ko.observable(item.ScheduleClause);
    self.Details = ko.observable(item.Details);
    self.Account = ko.observable(item.Account);
    self.AccountName = ko.observable(item.AccountName);
    self.Department = ko.observable(item.Department);
    self.DepartmentName = ko.observable(item.DepartmentName);
    self.IsCompliance = ko.observable(item.IsCompliance);
    self.ComplianceName = ko.observable(item.ComplianceName);
    self.Findings = ko.observable(item.Findings);
    self.Recommendation1 = ko.observable(item.Recommendation1);
    self.Likelihood = ko.observable(item.Likelihood);
    self.LikelihoodName = ko.observable(item.LikelihoodName);
    self.Consequence = ko.observable(item.Consequence);
    self.ConsequenceName = ko.observable(item.ConsequenceName);
    self.RiskLevel = ko.observable(item.RiskLevel);
    self.RiskLevelName = ko.observable(item.RiskLevelName);
    self.RiskReason = ko.observable(item.RiskReason);
    self.AuditeesReason = ko.observable(item.AuditeesReason);
    self.POC = ko.observable(item.POC);
    self.POCName = ko.observable(item.POCName);
    self.TargetCompletionDate = ko.observable(item.TargetCompletionDate);
    self.IsOpen = ko.observable(item.IsOpen);
    self.Status = ko.observable(item.Status);
    self.RiskLevelCurrent = ko.observable(item.RiskLevelCurrent);
    self.StatusRemarks = ko.observable(item.StatusRemarks);
    self.DateOfCompletion = ko.observable(item.DateOfCompletion);
    self.Site = ko.observable(item.Site);
    self.SiteName = ko.observable(item.SiteName);
    self.Auditor = ko.observable(item.Auditor);
    self.AuditorName = ko.observable(item.AuditorName);
    self.RiskComputationAuditPeriod = ko.observable(item.RiskComputationAuditPeriod);
    self.Filter1 = ko.observable(item.Filter1);
    self.Filter1Name = ko.observable(item.Filter1Name);
    self.Filter2 = ko.observable(item.Filter2);
    self.Filter2Name = ko.observable(item.Filter2Name);
    self.RiskComputationCurrent = ko.observable(item.RiskComputationCurrent);
    self.RiskComputationCurrentName = ko.observable(item.RiskComputationCurrentName);
    self.IsEfficient = ko.observable(item.IsEfficient);
    self.IsRemediated = ko.observable(item.IsRemediated);
    self.IsCommitted = ko.observable(item.IsCommitted);
    self.CreatedDate = ko.observable(item.CreatedDate);
    self.CreatedBy = ko.observable(item.CreatedBy);
    return self;
}

3 个解决方案

#1


0

Try this

尝试这个

I removed most of your other code

我删除了大部分其他代码

function MapRiskRegister(item) {
    var self = this;

    self.Account = ko.observable(item.Account);
    self.Account.subscribe(function(newValue){
        console.log(newValue);
    });
    return self;
}

更多相关文章

  1. jQuery - 从一个列表项中查找活动类,并将此类提供给另一个列表
  2. 使用jquery和ajax更新选项列表
  3. 将AngularJS、jQueryUI、Angular-Drag-Drop合并为排序列表
  4. 当使用Javascript选择其中一个时,如何禁用复选框列表中的其他项目
  5. 笨鸟求问,下拉列表实现局部刷新的问题
  6. 将JavaScript数组转换成逗号分隔列表的简单方法?
  7. 使用Ajax+JQuery构造分页查询列表
  8. 如何使用jQuery选择列表中的最后X项?
  9. 单击列表项时如何编写内容? [重复]

随机推荐

  1. c语言的四大数据类型是什么?
  2. ASP.NET数据库密码:MD5加密算法详解
  3. net4.0怎么安装
  4. unity3d用什么语言开发?
  5. ASP.NET图形验证码生成实践
  6. 用c程序实现的算法必须要有输入个输出操
  7. 0基础学c语言看什么书?
  8. c语言主函数名是什么?
  9. c语言源程序的基本单位是什么
  10. c语言system函数用法