首页 新闻 会员 周边 捐助

knockoutjs 的变量的作用域是怎么定义的?

0
悬赏园豆:5 [已解决问题] 解决于 2013-09-16 15:52
 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 的变量的作用域是怎么定义的? 

墨尔的主页 墨尔 | 菜鸟二级 | 园豆:396
提问于:2013-09-13 11:46
< >
分享
最佳答案
0

这不是作用域的问题,你可能在某个地方写错了。

1、self.AreaName("beijing");这样写。

2、self.showSelectedValue不是一个值,是一个方法。

我做了个测试例子:http://jsfiddle.net/WinKiFlyMe/ysNWH/3/

收获园豆:5
|WinKi| | 小虾三级 |园豆:669 | 2013-09-13 13:28

你的测试例子我看了,多谢。

墨尔 | 园豆:396 (菜鸟二级) | 2013-09-16 15:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册