protected override void ConfigureBinding(KnockoutTagBuilder <TModel> tagBuilder)
 {
     if (this.Metadata != null)
     {
         var first = (IListSourceConfig)this.Metadata.FirstOrDefault(m => m.GetType().GetInterfaces().Any(p => p == typeof(IListSourceConfig)));
         if (first != null)
         {
             var propertyName = KnockoutExpressionConverter.Convert(Binding, null);
             propertyName += "." + first.Name;
             tagBuilder.Custom("options", propertyName, false);
             tagBuilder.OptionsText(first.OptionsText, true);
             tagBuilder.OptionsValue(first.OptionsValue, true);
         }
     }
     else
     {
         if (SelectOptions != null)
         {
             tagBuilder.Options(Expression.Lambda <Func <TModel, IEnumerable> >(SelectOptions.Body, SelectOptions.Parameters));
         }
         if (SelectOptionsText != null)
         {
             var data = new KnockoutExpressionData {
                 InstanceNames = new[] { "item" }
             };
             tagBuilder.OptionsText("function(item) { return " + KnockoutExpressionConverter.Convert(SelectOptions, data) + "; }");
         }
     }
 }
Example #2
0
        protected override void ConfigureBinding(KnockoutTagBuilder <TModel> tagBuilder)
        {
            Func <IPropertyConfig, bool> func = m => m.GetType().GetInterfaces().Any(p => p == typeof(IFormatConfig));

            if (this.Metadata != null && this.Metadata.Any(func))
            {
                var first        = (IFormatConfig)this.Metadata.First(func);
                var propertyName = KnockoutExpressionConverter.Convert(Binding, null) + "." + first.Name;
                tagBuilder.Custom("value", propertyName, false);
            }
            else
            {
                base.ConfigureBinding(tagBuilder);
            }
        }