private static void AddAttibutes(StringBuilder sb, KOModel model) { foreach (var attribute in model.Attributes) { var line = "\tthis." + attribute.Key + ": " + KOUtils.WrapObservable(KOUtils.ToJavascriptValue(attribute.Value.Value), attribute.Value.Observable); line += ";"; sb.AppendLine(line); } }
private static void AddObjects(StringBuilder sb, KOModel model) { foreach (var observable in model.Objects) { var line = "\tthis." + observable.Key + ": " + KOUtils.WrapObservable(observable.Value.Value.ToJavascript(), observable.Value.Observable); line += ";"; sb.AppendLine(line); } }
public static string ToJavascript(this KOModel model) { var sb = new StringBuilder(); sb.Append("{"); AddAttibutes(sb, model); AddObjects(sb, model); AddArrays(sb, model); sb.Append("}"); return(sb.ToString()); }
private static void AddArrays(StringBuilder sb, KOModel model) { foreach (var observableArray in model.Arrays) { var line = new StringBuilder(); line.Append("\tthis."); line.Append(observableArray.Key + ": " + KOUtils.WrapObservableArray(BuildArray(observableArray), observableArray.Value.Observable)); line.Append(";"); sb.AppendLine(line.ToString()); } }
private static void AddAttibutes(StringBuilder sb, KOModel model) { foreach (var attribute in model.Attributes) { var line = "\t" + attribute.Key + ": " + KOUtils.WrapObservable(KOUtils.ToJavascriptValue(attribute.Value.Value), attribute.Value.Observable); if (attribute.Key != model.Attributes.Last().Key || model.Objects.Any() || model.Arrays.Any()) { line += ", "; } sb.AppendLine(line); } }
private static void AddObjects(StringBuilder sb, KOModel model) { foreach (var observable in model.Objects) { var line = "\t" + observable.Key + ": " + KOUtils.WrapObservable(observable.Value.Value.ToJavascript(), observable.Value.Observable); if (observable.Key != model.Objects.Last().Key || model.Arrays.Any()) { line += ", "; } sb.AppendLine(line); } }
public static string ToJavascriptObject(this KOModel model, string name) { var sb = new StringBuilder(); sb.Append(name + " = (function() {"); sb.AppendLine("\tfunction " + name + "() {"); AddAttibutes(sb, model); AddObjects(sb, model); AddArrays(sb, model); sb.AppendLine("}"); sb.AppendLine("return " + name + ";"); sb.AppendLine("})();"); return(sb.ToString()); }