Esempio n. 1
0
		transform: function(mid, param, promise) {
			// speed-up, parallelly load apis and modules 
			this._promiser = Deferred.ensure({
				data: promise,
				ctor: common.getCtor(mid)
			}, true);
			// 渲染新页面及处理错误
			this._promiser.then(
				lang.hitch(this, function(result) {
					var page, error;
					param = param || {};
					if (result.data) { param.data = result.data }
					// 渲染
					try { page = result.ctor(param) } catch (e) { error = e }
					// 完成渲染并处理错误
					if (error) {
						this.onTransformError({
							type: "rendering",
							message: error.message,
							code: error.code || -99999,
							rawError: error
						})
					} else {
						this.onTransformEnd(page)
					}
				}),
				lang.hitch(this, "onTransformError")
			)
		},
Esempio n. 2
0
		initialize: function() {
			var registry = lang.hitch(this, "route");
			var transform = lang.hitch(this, "transform");
			// # 404
			registry("*action", "404", function() {
				routes.navigate("/404", true, true)
			});
			// # error 404
			registry("404(/)(?:query)", "errror.404", function() {
				transform("app/entry.Error")
			});
			// # home
			registry("(?:query)", "home", function(q) {
				transform("app/entry.Home", null, services.getEntryHome())
			});
			// # about
			registry("about(/)(?:query)", "toplist", function() {
				transform("app/entry.About", null, services.getEntryAbout())
			});
		},