Function

Module: @ember/object
dependentKey
String
returns
ComputedProperty
computed property which performs a logical `and` on the values of all the original values for properties.

A computed property that performs a logical and on the original values for the provided dependent properties.

You may pass in more than two properties and even use property brace expansion. The computed property will return the first falsy value or last truthy value just like JavaScript's && operator.

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { set } from '@ember/object';
import { and } from '@ember/object/computed';

class Hamster {
  @and('hasWalkingStick', 'hasBackpack') readyForHike;
}

let tomster = new Hamster();

tomster.readyForCamp; // false

set(tomster, 'hasTent', true);
tomster.readyForCamp; // false

set(tomster, 'hasBackpack', true);
tomster.readyForCamp; // true

set(tomster, 'hasBackpack', 'Yes');
tomster.readyForCamp; // 'Yes'

set(tomster, 'hasWalkingStick', null);
tomster.readyForHike; // null

Classic Class Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import EmberObject, { set } from '@ember/object';
import { and } from '@ember/object/computed';

let Hamster = EmberObject.extend({
  readyForCamp: and('hasTent', 'hasBackpack'),
  readyForHike: and('hasWalkingStick', 'hasBackpack')
});

let tomster = Hamster.create();

tomster.readyForCamp; // false

set(tomster, 'hasTent', true);
tomster.readyForCamp; // false

set(tomster, 'hasBackpack', true);
tomster.readyForCamp; // true

set(tomster, 'hasBackpack', 'Yes');
tomster.readyForCamp; // 'Yes'

set(tomster, 'hasWalkingStick', null);
tomster.readyForHike; // null