控制器方法中的参数

默认情况下,除empty方法外,控制器的所有方法时没有参数的。
传递参数的情况有以下两种:

1、开启了MO_PARSEACTIONPARMS

本参数决定框架是否自动解析控制器方法中的参数。
如果开启本参数,框架会自动解析控制器方法中的参数,并取QueryString值,传递给控制器方法。

TestController.extend("Index", function(name, title){

});

请求URL:http://xxxx/?m=Test&a=Index&name=anlige&title=mae
如果开启了MO_PARSEACTIONPARMS选项,则上例中name的值为anlige,title的值为mae

2、程序内部调用控制器方法

参数值完全取决于你如何调用。此时,建议被调用的控制器方法设置Private属性(如果不想暴露被调方法)。

TestController.extend("Index", function(name, title){
    this.invoke("Set", "anlige", "title");
    this.invoke("Get", "anlige", "title");
});
TestController.extend("Set", function(name, title){
    //参数值取决于Inedx中对Set的调用。
}).AsPrivate();
TestController.extend("Get", function(name, title){
    //参数值取决于Inedx中对Get的调用。
});
`

控制器会响应http://xxxx/?m=Test&a=Indexhttp://xxxx/?m=Test&a=Get ,但不会响应http://xxxx/?m=Test&a=Set ,因为Set被设置为Private属性。

发表评论评论(0)