Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与单击绑定一起使用的knockout.JS中的可见绑定_Javascript_Html_Knockout.js - Fatal编程技术网

Javascript 与单击绑定一起使用的knockout.JS中的可见绑定

Javascript 与单击绑定一起使用的knockout.JS中的可见绑定,javascript,html,knockout.js,Javascript,Html,Knockout.js,我正在进行一个小型项目,我希望在其中具有以下功能- 单击HDFC Bank行时,相关图形(显示公司在一段时间内的增长)将显示在下面 我正试图通过使用两个knockout.JS概念来解决这个问题——inside。我试过这样做- this.showGraph = ko.observable(false); //initially the graph <div> is invisible self.drawGraph = function(company) { //console.

我正在进行一个小型项目,我希望在其中具有以下功能- 单击
HDFC Bank
行时,相关图形(显示公司在一段时间内的增长)将显示在下面

我正试图通过使用两个knockout.JS概念来解决这个问题——inside。我试过这样做-

this.showGraph = ko.observable(false); //initially the graph <div> is invisible
self.drawGraph = function(company) {
    //console.log(company.name+"=="+self.companyPortfolio()[0].name);
      self.showGraph = ko.computed(function() {
        return company.name == self.companyPortfolio()[0].name;
      });
     // console.log("showGraph="+self.showGraph());
  }
当我点击
HDFC Bank
行时,我得到了
showGraph=true
,这是预期的输出

请参见此处-

问题-图形
保持不可见
,即使
showGraph observable
获得正确的值


我的代码-

每次调用drawGraph函数时,它都会用一个新的计算值覆盖可观察的showGraph,这没有多大意义。我不认为你真的需要一个计算的可观察的,因为你正在根据点击事件进行更新

试着这样做:

self.showGraph = ko.observable(false);
self.drawGraph = function(company) {
    self.showGraph(company.name == self.companyPortfolio()[0].name);
}

drawGraph函数每次调用时都会用一个新的计算值覆盖可观察的showGraph,这没有多大意义。我不认为你真的需要一个计算的可观察的,因为你正在根据点击事件进行更新

试着这样做:

self.showGraph = ko.observable(false);
self.drawGraph = function(company) {
    self.showGraph(company.name == self.companyPortfolio()[0].name);
}

问题实际上是由于将计算结果嵌套在
drawGraph
中引起的。一个computed确实不是必需的,但是我修改了你的代码,通过移动computed并让你的click事件设置reference
SelectedCompany
,它可以正常工作

//当前价格与LTP(上次交易价格)相同
//ABP代表平均购买价格
风险值组合=[{
“当前价格”:1626.0,
“股票代码”:“HDFCBANK.NS”,
“in_watchlist”:正确,
“估价”:“公平”,
“符号”:“HDFCBANK”,
“回报率”:29.777877102106267,
“每日百分比”:0.5,
“计数”:5,
“市值”:“大盘”,
“名称”:“HDFC银行”,
“行业”:“金融业”,
“平均买入价”:1252.9100000000003
},
{
“当前价格”:7064.8,
“股票代码”:“MARUTI.NS”,
“in_watchlist”:false,
“估价”:“有吸引力”,
“符号”:“MARUTI”,
“回报率”:14.961719023326577,
“每日百分比”:1.1,
“计数”:1,
“市值”:“大盘”,
“名称”:“马鲁蒂铃木”,
“工业”:“汽车”,
“平均买入价”:6145.35
},
{
“当前价格”:1091.15,
“股票代码”:“EMAMILTD.NS”,
“in_watchlist”:正确,
“估价”:“公平”,
“符号”:“Emamild”,
“回报率”:7.405463046509734,
“每日百分比”:0.1,
“计数”:6,
“市值”:“大盘”,
“名称”:“Emami”,
“行业”:“快速消费品”,
“平均买入价”:1015.91666
},
{
“当前价格”:1493.6,
“股票代码”:“YESBANK.NS”,
“in_watchlist”:正确,
“估价”:“无吸引力”,
“符号”:“YESBANK”,
“回报率”:5.1942106560552,
“每日百分比”:2.0,
“计数”:4,
“市值”:“大盘”,
“名称”:“是银行”,
“行业”:“金融业”,
“平均买入价”:1419.850000000001
},
{
“当前价格”:1477.7,
“股票代码”:“INDUSINDBK.NS”,
“in_watchlist”:false,
“估价”:“公平”,
“符号”:“INDUSINDBK”,
“回报率”:20.332651337001815,
“每日百分比”:1.1,
“计数”:4,
“市值”:“大盘”,
“名称”:“印度银行”,
“行业”:“金融业”,
“平均买入价”:1228.0125
}
];
var hdfc_库存_数据={
“股票”:{
“股票价格”:“1626”,
“增长历史”:[{
“增长”:0.5,
“标签”:“1天”
},
{
“增长”:4.1,
“标签”:“1周”
},
{
“增长”:4.7,
“标签”:“1个月”
},
{
“增长”:38.5,
“标签”:“1年”
},
{
“增长”:27.6,
“标签”:“5年”
},
{
“增长”:22.5,
“标签”:“10年”
}
],
“短名称”:“HDFC银行”,
“行业名称”:“银行-私人”,
“现行价格”:“1626”,
“年增长率”:17.3,
“符号”:“HDFCBANK”,
“行业”:“金融>银行-私人”,
“图表”:{
“股价”:{
“价值观”:[
空,空,空,189.959795109746197.71928584431,219.9706072494454,307.678835624819,281.625310309537,249.119276388136,227.1002946611012,188.794277595195,169.21512345141258.013509416648,276.27126381467,322.69166057369,323.487845020358,367.61929505,780.443764135,2233972518.4357418,184467.41741224, 437.402813351776, 488.791340421378, 509.46681790125, 572.204908113496, 626.12896425413, 635.592297266244, 659.238528347662, 617.448102158967, 647.100254100593, 654.104507275281, 776.032203654182, 825.764714228535, 911.757260470622, 1036.6605724851, 997.749806712709, 1065.40547367068, 1068.48023694246, 1021.91245126184, 1133.84375294572, 1247.825, 1220.8, 1318.15, 1626.0
]
},
“x_轴”:{
“价值观”:[
“2006年3月”、“2006年6月”、“2006年9月”、“2007年6月”、“2007年7月”、“2007年9月”、“2008年6月”、“2008年9月”、“2009年9月”、“2009年9月”、“2010年10月”、“2010年10月”、“2010年10月”、“11月11日”、“11月11日”、“12月12日”、“12月12日”、“12月12日”、“13日”、“13日”、“13日”、“13日”、“14日”、“14日”、“14日”、“15日”、“15日”“2015年12月”、“2016年3月”、“2016年6月”、“2016年9月”、“2016年12月”、“2017年3月”
]
}
}
}
};
var points=hdfc_stock_data.stock.graphs.stock_price.values;
//控制台日志(点);
var xAxis=hdfc_stock_data.stock.graphs.x_axis.values;
//console.log(xAxis);
var growthDetails=hdfc_stock_data.stock.growth_history;
函数图(直线){
变量plot2=$.jqplot('chart2',[line]{
//标题:“自定义日期轴”,
网格:{
drawGridlines:false
},
轴线:{
xaxis:{
渲染器:$.jqplot.CategoryAxisRenderer,
labelRenderer:$.jqplot.CanvasAxisLabelRenderer,
tickRenderer:$.jqp