ko.bindingHandlers.popover = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var val = ko.utils.unwrapObservable(valueAccessor());

        var options = {
            title: val.title,
            animation: val.animation,
            placement: val.placement,
            trigger: val.trigger,
            delay: val.delay,
            content: val.content,
            html: val.html
        };
        $(element).popover(options);
    }
};

@@ -20,24 +20,111 @@
 popover = %7B%0A
+    keys: %5B%22title%22, %22animation%22, %22placement%22, %22trigger%22, %22delay%22, %22content%22, %22html%22%5D,%0A%0A
     init: fu
@@ -267,16 +267,68 @@
 or());%0A%0A
+        var keys = ko.bindingHandlers.popover.keys;%0A
         
@@ -338,24 +338,26 @@
  options = %7B
+%7D;
 %0A           
@@ -357,238 +357,489 @@
     
-    title: val.title,%0A            animation: val.anima
+_.each(keys, function(key) %7B%0A            options%5Bkey%5D = ko.utils.unwrapObservable(val%5Bkey%5D);%0A        %7D);%0A%0A        $(element).popover(op
 tion
-,
+s);
 %0A    
-        plac
+%7D,%0A%0A    update: function(el
 ement
-:
+,
  val
-.placement,%0A            trigger: val.trigger,%0A            delay: val.delay,%0A            content: val.content,%0A            html: val.html
+ueAccessor, allBindingsAccessor, viewModel, bindingContext) %7B%0A        var val = ko.utils.unwrapObservable(valueAccessor());%0A%0A        var keys = ko.bindingHandlers.popover.keys;%0A        var value;%0A        _.each(keys, function(key) %7B%0A            value = ko.utils.unwrapObservable(val%5Bkey%5D);
 %0A       
  %7D;%0A
@@ -838,20 +838,13 @@
     
- %7D;%0A
      
-   
 $(el
@@ -846,39 +846,71 @@
  $(element).
+data(%22
 popover
-(
+%22).
 options
+%5Bkey%5D = value;%0A        %7D
 );%0A    %7D%0A%7D;%0A

Allow dynamic values in ko popover binding