ember / 3.25.0 / functions / @ember / object / computed / oneway.html /

Function

oneWay (dependentKey) ComputedProperty public

Module: @ember/object
import { oneWay } from '@ember/object/computed';
dependentKey
String
returns
ComputedProperty
computed property which creates a one way computed property to the original value for property.

Where computed.alias aliases get and set, and allows for bidirectional data flow, computed.oneWay only provides an aliased get. The set will not mutate the upstream property, rather causes the current property to become the value set. This causes the downstream property to permanently diverge from the upstream property.

Example:

import { set } from '@ember/object';
import { oneWay }from '@ember/object/computed';

class User {
  constructor(firstName, lastName) {
    set(this, 'firstName', firstName);
    set(this, 'lastName', lastName);
  }

  @oneWay('firstName') nickName;
}

let teddy = new User('Teddy', 'Zeenny');

teddy.nickName; // 'Teddy'

set(teddy, 'nickName', 'TeddyBear');
teddy.firstName; // 'Teddy'
teddy.nickName; // 'TeddyBear'

Classic Class Example:

import EmberObject, { set } from '@ember/object';
import { oneWay } from '@ember/object/computed';

let User = EmberObject.extend({
  firstName: null,
  lastName: null,

  nickName: oneWay('firstName')
});

let teddy = User.create({
  firstName: 'Teddy',
  lastName: 'Zeenny'
});

teddy.nickName; // 'Teddy'

set(teddy, 'nickName', 'TeddyBear'); // 'TeddyBear'
teddy.firstName; // 'Teddy'
teddy.nickName; // 'TeddyBear'

© 2020 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember/3.25/functions/@ember%2Fobject%2Fcomputed/oneWay