瀏覽代碼

HUE-7832 [frontend] Add a publish KO binding to publish to huePubSub on click

Johan Ahlen 8 年之前
父節點
當前提交
96aa933
共有 1 個文件被更改,包括 18 次插入0 次删除
  1. 18 0
      desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

+ 18 - 0
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -142,6 +142,24 @@
     }
   };
 
+  ko.bindingHandlers.publish = {
+    init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
+      ko.bindingHandlers.click.init(element, function () {
+        return function () {
+          var topicDetails = ko.unwrap(valueAccessor());
+          if (typeof topicDetails === 'string') {
+            huePubSub.publish(topicDetails)
+          } else if (typeof topicDetails === 'object') {
+            var keys = Object.keys(topicDetails);
+            if (keys.length === 1) {
+              huePubSub.publish(keys[0], topicDetails[keys[0]]);
+            }
+          }
+        }
+      }, allBindings, viewModel, bindingContext);
+    },
+  };
+
   ko.bindingHandlers.clickToCopy = {
     init: function (element, valueAccessor) {
       $(element).click(function () {