1 function viewModel(){ 2 var self = this; 3 self.Areas=[new Area(1,"龙城"), new Area(2,"横岗"), new Area(3,"平湖"), new Area(4,"布吉"), new Area(5,"坂田"), new Area(6,"南湾"), new Area(7,"龙岗")]; 4 self.RestaurantTypes=[new RestaurantType(1,"粤菜"),new RestaurantType(2,"客家菜"),new RestaurantType(3,"川菜")] ; 5 self.AreaName=ko.observable("NanJing"); 6 self.showSelectedValue = ko.observable(true); 7 self.click_area = function(msg){ 8 self.AreaName=("BeiJing"); 9 self.showSelectedValue = false; 10 alert("AreaName:"+self.AreaName); 11 alert("showSelectedValue:"+self.showSelectedValue); 12 13 } 14 this.click_type = function(){ 15 alert("AreaName:"+self.AreaName); 16 alert("showSelectedValue:"+self.showSelectedValue); 17 } 18 19 };
如上, (第7行)当执行click_area的时候,修改变量self.AreaName的值,(第10行)弹出"AreaName:BeiJing",说明变量值已经修改。 但UI界面没有更新。
(第14行)当执行click_type的时候,是取不到self.AreaName的值。
knockoutjs 的变量的作用域是怎么定义的?
这不是作用域的问题,你可能在某个地方写错了。
1、self.AreaName("beijing");这样写。
2、self.showSelectedValue不是一个值,是一个方法。
你的测试例子我看了,多谢。