public KnockoutFieldBase(KnockoutContext <TModel> context, FieldType type, Expression <Func <TModel, TItem> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(type.ToString().ToLowerInvariant(), context, binding, instancesNames, aliases) { //this.Type = type; this.Metadata = metadata; this.Label = new KnockoutLabel(this, metadata); this.Name = KnockoutExpressionConverter.Convert(Binding, null); }
public KnockoutCheckedInputBase(KnockoutContext <TModel> context, InputType inputType, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, inputType, binding, metadata, instancesNames, aliases) { if (!(inputType == InputType.CheckBox || inputType == InputType.Radio)) { throw new ArgumentException("Input type can only be checkable."); } }
public void VisitNew1() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestAttributesModel2>(viewContext); string apply = context.ApplyViewModel("elementId").ToString(); //AssertStringEquivalent("blah", apply); }
public void ValueUpdateInput() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestModel>(viewContext); var binding = new KnockoutBinding <TestModel>(context); string bind = context.Bind.Text(m => m.A).ValueUpdate(KnockoutValueUpdateKind.Input).BindingAttributeContent(); AssertStringEquivalent("text : A,valueUpdate : 'input'", bind); }
public static KnockoutTagBuilder <TModel> EditorFor <TModel>(this KnockoutContext <TModel> context, Expression <Func <TModel, object> > property, object additionalViewData = null, object htmlAttributes = null) { KnockoutTagBuilder <TModel> result = new KnockoutTagBuilder <TModel>(context, "div", null, null); if (property != null) { result.Value(property); var memberExpression = property.Body as MemberExpression; } return(result); }
public void ContextTest03() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestModel>(viewContext); using (var subContext = context.Foreach(m => m.IntList)) { string bind = subContext.Bind.Text(n => n + 1).BindingAttributeContent(); AssertStringEquivalent("text:(parseInt($data)+parseInt(1))", bind); } }
public void ContextMethod1() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestAttributesModel2>(viewContext); using (var subContext = context.Foreach(m => m.IntList)) { string bind = subContext.Bind.Method("test", m => context.Model.Method).BindingAttributeContent(); AssertStringEquivalent("test: $parent.method", bind); } }
public void ContextTest01() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestModel>(viewContext); using (var subContext = context.With(m => m.SubModel)) { using (var subSubContext = subContext.Foreach(m => m.List)) { string bind = subSubContext.Bind.Text(m => context.Model.A + subContext.Model.B + m.ToString()).BindingAttributeContent(); AssertStringEquivalent("text:$parents[1].A()+$parent.B()+$data", bind); } } }
public void ContextTest01() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext <TestAttributesModel2>(viewContext); using (var subContext = context.With(m => m.SubModel)) { string bind = subContext.Bind.Method("test", m => context.Model.Method).BindingAttributeContent(); AssertStringEquivalent("test: $parent.method", bind); using (var subSubContext = subContext.Foreach(m => m.List)) { string subBind = subSubContext.Bind.Method("subTest", m => context.Model.Method).BindingAttributeContent(); AssertStringEquivalent("subTest:$parents[1].method", subBind); string subBind2 = subSubContext.Bind.Method("subContextTest", m => subContext.Model.Method).BindingAttributeContent(); AssertStringEquivalent("subContextTest:$parent.method", subBind2); } } }
public static HtmlString ApplyWithOutScriptTag <TModel>(this KnockoutContext <TModel> context, TModel model, string bindingElementSelector = null) { var htmlString = context.Apply(model); var script = htmlString.ToString(); var scriptStartTagIndex = script.IndexOf(ScriptStartTag); script = script.Remove(scriptStartTagIndex, ScriptStartTag.Length); var scriptEndTagIndex = script.LastIndexOf(ScriptEndTag); script = script.Remove(scriptEndTagIndex, ScriptEndTag.Length); if (!string.IsNullOrWhiteSpace(bindingElementSelector)) { var element = "$('" + bindingElementSelector + "')[0]"; script = script.Replace("ko.applyBindings(viewModel);", "ko.applyBindings(viewModel, " + element + ");"); } return(new HtmlString(script)); }
public KnockoutSelectBase(KnockoutContext <TModel> context, Expression <Func <TModel, TItem> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, FieldType.Select, binding, metadata, instancesNames, aliases) { }
public KnockoutListBox(KnockoutContext <TModel> context, Expression <Func <TModel, IEnumerable> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, binding, metadata, instancesNames, aliases) { }
public KnockoutInputBase(KnockoutContext <TModel> context, InputType inputType, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, FieldType.Input, binding, metadata, instancesNames, aliases) { this.InputType = inputType; }
public void ContextTest01() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext<TestModel>(viewContext); using (var subContext = context.With(m => m.SubModel)) { string bind = subContext.Bind.Text(m => context.Model.A + m.ToString()).BindingAttributeContent(); AssertStringEquivalent("text:($parent.A()+$data)", bind); using (var subSubContext = subContext.Foreach(m => m.List)) { string subBind = subSubContext.Bind.Text(m => context.Model.A + subContext.Model.B + m.ToString()).BindingAttributeContent(); AssertStringEquivalent("text:(($parents[1].A()+$parent.B())+$data)", subBind); } } }
public void ContextTest03() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext<TestModel>(viewContext); using (var subContext = context.Foreach(m => m.IntList)) { string bind = subContext.Bind.Text(n => n + 1).BindingAttributeContent(); AssertStringEquivalent("text:(parseInt($data)+parseInt(1))", bind); } }
public KnockoutTextAreaBase(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metatada = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, FieldType.TextArea, binding, metatada, instancesNames, aliases) { }
public KnockoutTextArea(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, List <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, binding, metadata, instancesNames, aliases) { }
public KnockoutPassword(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, InputType.Password, binding, metadata, instancesNames, aliases) { }
public KnockoutDatePicker(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base(context, InputType.Text, binding, metadata, instancesNames, aliases) { this.HtmlAttributes.Add("autocomplete", "off"); }
public void ValueUpdateInput() { var viewContext = new ViewContext { Writer = new StringWriter() }; var context = new KnockoutContext<TestModel>(viewContext); var binding = new KnockoutBinding<TestModel>(context); string bind = context.Bind.Text(m => m.A).ValueUpdate(KnockoutValueUpdateKind.Input).BindingAttributeContent(); AssertStringEquivalent("text : A,valueUpdate : 'input'", bind); }
public KnockoutSpan(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base("span", context, binding, instancesNames, aliases) { }
public KnockoutForm(KnockoutContext <TModel> context, Expression <Func <TModel, object> > binding, IEnumerable <IPropertyConfig> metadata = null, string[] instancesNames = null, Dictionary <string, string> aliases = null) : base("form", context, binding, instancesNames, aliases) { this.Fieldsets = new List <KnockoutFieldset>(); this.Buttons = new List <KnockoutButton>(); }
public static KnockoutForeachContext <TItem> ForeachEnumerable <TModel, TItem>(this KnockoutContext <TModel> context, Expression <Func <TModel, IEnumerable <TItem> > > binding) { var viewContext = (ViewContext)context.GetFieldValue("viewContext"); var knockoutForeachContext = new KnockoutForeachContext <TItem>( viewContext, KnockoutExpressionConverter.Convert(binding, context.CreateData()) ); knockoutForeachContext.WriteStart(viewContext.Writer); var contextStackProperty = context.GetType().Property("ContextStack"); var contextStack = (List <IKnockoutContext>)contextStackProperty.Get(context); contextStackProperty.Set(context, contextStack); contextStack.Add(knockoutForeachContext); return(knockoutForeachContext); }