Ghost/core/client/utils/bound-one-way.js
Matt Enlow e3b302676b Create boundOneWay util function
Closes #2958
- Created `boundOneWay` util to extract common pattern of having a oneWay property that doesn't break its binding after being set
- Changed `EditorControllerMixin.willPublish`,  `PostSettingsMenuController.publishedAtValue` and `.slugValue` to use the new `boundOneWay` util
2014-06-14 15:27:52 -06:00

21 lines
722 B
JavaScript

/**
* Defines a property similarly to `Ember.computed.oneway`,
* save that while a `oneway` loses its binding upon being set,
* the `BoundOneWay` will continue to listen for upstream changes.
*
* This is an ideal tool for working with values inside of {{input}}
* elements.
* @param transform: a function to transform the **upstream** value.
*/
var BoundOneWay = function (upstream, transform) {
if (typeof transform !== 'function') {
//default to the identity function
transform = function (value) { return value; };
}
return function (key, value) {
return arguments.length > 1 ? value : transform(this.get(upstream));
}.property(upstream);
};
export default BoundOneWay;