ember-source 4.1.0-alpha.2 → 4.1.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/blueprints/initializer/files/__root__/initializers/__name__.js +0 -1
- package/blueprints/instance-initializer/files/__root__/instance-initializers/__name__.js +0 -1
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +25 -274
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +4 -1
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +227 -1338
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/header/loader.js +1 -0
- package/dist/packages/@ember/-internals/container/index.js +17 -183
- package/dist/packages/@ember/-internals/environment/index.js +0 -12
- package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +7 -0
- package/dist/packages/@ember/-internals/glimmer/index.js +34 -71
- package/dist/packages/@ember/-internals/metal/index.js +65 -2
- package/dist/packages/@ember/-internals/routing/lib/ext/controller.js +1 -0
- package/dist/packages/@ember/-internals/routing/lib/services/router.js +16 -8
- package/dist/packages/@ember/-internals/routing/lib/system/route.js +2 -1
- package/dist/packages/@ember/-internals/routing/lib/system/router.js +10 -45
- package/dist/packages/@ember/-internals/runtime/lib/system/core_object.js +4 -90
- package/dist/packages/@ember/-internals/views/index.js +0 -1
- package/dist/packages/@ember/-internals/views/lib/system/event_dispatcher.js +22 -72
- package/dist/packages/@ember/application/instance.js +1 -22
- package/dist/packages/@ember/application/lib/application.js +7 -24
- package/dist/packages/@ember/canary-features/index.js +4 -2
- package/dist/packages/@ember/deprecated-features/index.js +0 -3
- package/dist/packages/@ember/engine/index.js +1 -5
- package/dist/packages/@ember/engine/instance.js +0 -4
- package/dist/packages/@ember/object/lib/computed/computed_macros.js +0 -373
- package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +0 -351
- package/dist/packages/@ember/service/index.js +19 -5
- package/dist/packages/@glimmer/tracking/index.js +1 -1
- package/dist/packages/ember/index.js +2 -3
- package/dist/packages/ember/version.js +1 -1
- package/dist/packages/ember-testing/lib/adapters/qunit.js +1 -0
- package/docs/data.json +326 -368
- package/lib/index.js +11 -48
- package/package.json +33 -33
- package/dist/packages/@ember/-internals/views/lib/system/jquery.js +0 -26
- package/dist/packages/jquery/index.js +0 -2
|
@@ -156,8 +156,6 @@ const EngineInstance = EmberObject.extend(RegistryProxyMixin, ContainerProxyMixi
|
|
|
156
156
|
singletons.forEach(key => this.register(key, parent.lookup(key), {
|
|
157
157
|
instantiate: false
|
|
158
158
|
}));
|
|
159
|
-
this.inject('view', '_environment', '-environment:main');
|
|
160
|
-
this.inject('route', '_environment', '-environment:main');
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
});
|
|
@@ -173,8 +171,6 @@ EngineInstance.reopenClass({
|
|
|
173
171
|
if (!options) {
|
|
174
172
|
return;
|
|
175
173
|
}
|
|
176
|
-
|
|
177
|
-
registry.injection('view', '_environment', '-environment:main');
|
|
178
174
|
}
|
|
179
175
|
|
|
180
176
|
});
|
|
@@ -67,25 +67,6 @@ function generateComputedWithPredicate(name, predicate) {
|
|
|
67
67
|
todoList.isDone; // true
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Classic Class Example:
|
|
71
|
-
|
|
72
|
-
```javascript
|
|
73
|
-
import EmberObject, { set } from '@ember/object';
|
|
74
|
-
import { empty } from '@ember/object/computed';
|
|
75
|
-
|
|
76
|
-
let ToDoList = EmberObject.extend({
|
|
77
|
-
isDone: empty('todos')
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
let todoList = ToDoList.create({
|
|
81
|
-
todos: ['Unit Test', 'Documentation', 'Release']
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
todoList.isDone; // false
|
|
85
|
-
set(todoList, 'todos', []);
|
|
86
|
-
todoList.isDone; // true
|
|
87
|
-
```
|
|
88
|
-
|
|
89
70
|
@since 1.6.0
|
|
90
71
|
@method empty
|
|
91
72
|
@static
|
|
@@ -132,25 +113,6 @@ export function empty(dependentKey) {
|
|
|
132
113
|
hamster.hasStuff; // false
|
|
133
114
|
```
|
|
134
115
|
|
|
135
|
-
Classic Class Example:
|
|
136
|
-
|
|
137
|
-
```javascript
|
|
138
|
-
import EmberObject, { set } from '@ember/object';
|
|
139
|
-
import { notEmpty } from '@ember/object/computed';
|
|
140
|
-
|
|
141
|
-
let Hamster = EmberObject.extend({
|
|
142
|
-
hasStuff: notEmpty('backpack')
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
let hamster = Hamster.create({
|
|
146
|
-
backpack: ['Food', 'Sleeping Bag', 'Tent']
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
hamster.hasStuff; // true
|
|
150
|
-
set(hamster, 'backpack', []);
|
|
151
|
-
hamster.hasStuff; // false
|
|
152
|
-
```
|
|
153
|
-
|
|
154
116
|
@method notEmpty
|
|
155
117
|
@static
|
|
156
118
|
@for @ember/object/computed
|
|
@@ -190,27 +152,6 @@ export function notEmpty(dependentKey) {
|
|
|
190
152
|
hamster.isHungry; // true
|
|
191
153
|
```
|
|
192
154
|
|
|
193
|
-
Classic Class Example:
|
|
194
|
-
|
|
195
|
-
```javascript
|
|
196
|
-
import EmberObject, { set } from '@ember/object';
|
|
197
|
-
import { none } from '@ember/object/computed';
|
|
198
|
-
|
|
199
|
-
let Hamster = EmberObject.extend({
|
|
200
|
-
isHungry: none('food')
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
let hamster = Hamster.create();
|
|
204
|
-
|
|
205
|
-
hamster.isHungry; // true
|
|
206
|
-
|
|
207
|
-
set(hamster, 'food', 'Banana');
|
|
208
|
-
hamster.isHungry; // false
|
|
209
|
-
|
|
210
|
-
set(hamster, 'food', null);
|
|
211
|
-
hamster.isHungry; // true
|
|
212
|
-
```
|
|
213
|
-
|
|
214
155
|
@method none
|
|
215
156
|
@static
|
|
216
157
|
@for @ember/object/computed
|
|
@@ -249,25 +190,6 @@ export function none(dependentKey) {
|
|
|
249
190
|
user.isAnonymous; // false
|
|
250
191
|
```
|
|
251
192
|
|
|
252
|
-
Classic Class Example:
|
|
253
|
-
|
|
254
|
-
```javascript
|
|
255
|
-
import EmberObject, { set } from '@ember/object';
|
|
256
|
-
import { not } from '@ember/object/computed';
|
|
257
|
-
|
|
258
|
-
let User = EmberObject.extend({
|
|
259
|
-
loggedIn: false,
|
|
260
|
-
|
|
261
|
-
isAnonymous: not('loggedIn')
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
let user = User.create();
|
|
265
|
-
|
|
266
|
-
user.isAnonymous; // true
|
|
267
|
-
set(user, 'loggedIn', true);
|
|
268
|
-
user.isAnonymous; // false
|
|
269
|
-
```
|
|
270
|
-
|
|
271
193
|
@method not
|
|
272
194
|
@static
|
|
273
195
|
@for @ember/object/computed
|
|
@@ -312,31 +234,6 @@ export function not(dependentKey) {
|
|
|
312
234
|
hamster.hasBananas; // false
|
|
313
235
|
```
|
|
314
236
|
|
|
315
|
-
Classic Class Example:
|
|
316
|
-
|
|
317
|
-
```javascript
|
|
318
|
-
import EmberObject, { set } from '@ember/object';
|
|
319
|
-
import { bool } from '@ember/object/computed';
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
let Hamster = EmberObject.extend({
|
|
323
|
-
hasBananas: bool('numBananas')
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
let hamster = Hamster.create();
|
|
327
|
-
|
|
328
|
-
hamster.hasBananas; // false
|
|
329
|
-
|
|
330
|
-
set(hamster, 'numBananas', 0);
|
|
331
|
-
hamster.hasBananas; // false
|
|
332
|
-
|
|
333
|
-
set(hamster, 'numBananas', 1);
|
|
334
|
-
hamster.hasBananas; // true
|
|
335
|
-
|
|
336
|
-
set(hamster, 'numBananas', null);
|
|
337
|
-
hamster.hasBananas; // false
|
|
338
|
-
```
|
|
339
|
-
|
|
340
237
|
@method bool
|
|
341
238
|
@static
|
|
342
239
|
@for @ember/object/computed
|
|
@@ -378,27 +275,6 @@ export function bool(dependentKey) {
|
|
|
378
275
|
user.hasValidEmail; // true
|
|
379
276
|
```
|
|
380
277
|
|
|
381
|
-
Classic Class Example:
|
|
382
|
-
|
|
383
|
-
```javascript
|
|
384
|
-
import EmberObject, { set } from '@ember/object';
|
|
385
|
-
import { match } from '@ember/object/computed';
|
|
386
|
-
|
|
387
|
-
let User = EmberObject.extend({
|
|
388
|
-
hasValidEmail: match('email', /^.+@.+\..+$/)
|
|
389
|
-
});
|
|
390
|
-
|
|
391
|
-
let user = User.create();
|
|
392
|
-
|
|
393
|
-
user.hasValidEmail; // false
|
|
394
|
-
|
|
395
|
-
set(user, 'email', '');
|
|
396
|
-
user.hasValidEmail; // false
|
|
397
|
-
|
|
398
|
-
set(user, 'email', 'ember_hamster@example.com');
|
|
399
|
-
user.hasValidEmail; // true
|
|
400
|
-
```
|
|
401
|
-
|
|
402
278
|
@method match
|
|
403
279
|
@static
|
|
404
280
|
@for @ember/object/computed
|
|
@@ -441,27 +317,6 @@ export function match(dependentKey, regexp) {
|
|
|
441
317
|
hamster.satisfied; // false
|
|
442
318
|
```
|
|
443
319
|
|
|
444
|
-
Classic Class Example:
|
|
445
|
-
|
|
446
|
-
```javascript
|
|
447
|
-
import EmberObject, { set } from '@ember/object';
|
|
448
|
-
import { equal } from '@ember/object/computed';
|
|
449
|
-
|
|
450
|
-
let Hamster = EmberObject.extend({
|
|
451
|
-
satisfied: equal('percentCarrotsEaten', 100)
|
|
452
|
-
});
|
|
453
|
-
|
|
454
|
-
let hamster = Hamster.create();
|
|
455
|
-
|
|
456
|
-
hamster.satisfied; // false
|
|
457
|
-
|
|
458
|
-
set(hamster, 'percentCarrotsEaten', 100);
|
|
459
|
-
hamster.satisfied; // true
|
|
460
|
-
|
|
461
|
-
set(hamster, 'percentCarrotsEaten', 50);
|
|
462
|
-
hamster.satisfied; // false
|
|
463
|
-
```
|
|
464
|
-
|
|
465
320
|
@method equal
|
|
466
321
|
@static
|
|
467
322
|
@for @ember/object/computed
|
|
@@ -503,27 +358,6 @@ export function equal(dependentKey, value) {
|
|
|
503
358
|
hamster.hasTooManyBananas; // true
|
|
504
359
|
```
|
|
505
360
|
|
|
506
|
-
Classic Class Example:
|
|
507
|
-
|
|
508
|
-
```javascript
|
|
509
|
-
import EmberObject, { set } from '@ember/object';
|
|
510
|
-
import { gt } from '@ember/object/computed';
|
|
511
|
-
|
|
512
|
-
let Hamster = EmberObject.extend({
|
|
513
|
-
hasTooManyBananas: gt('numBananas', 10)
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
let hamster = Hamster.create();
|
|
517
|
-
|
|
518
|
-
hamster.hasTooManyBananas; // false
|
|
519
|
-
|
|
520
|
-
set(hamster, 'numBananas', 3);
|
|
521
|
-
hamster.hasTooManyBananas; // false
|
|
522
|
-
|
|
523
|
-
set(hamster, 'numBananas', 11);
|
|
524
|
-
hamster.hasTooManyBananas; // true
|
|
525
|
-
```
|
|
526
|
-
|
|
527
361
|
@method gt
|
|
528
362
|
@static
|
|
529
363
|
@for @ember/object/computed
|
|
@@ -565,27 +399,6 @@ export function gt(dependentKey, value) {
|
|
|
565
399
|
hamster.hasTooManyBananas; // true
|
|
566
400
|
```
|
|
567
401
|
|
|
568
|
-
Classic Class Example:
|
|
569
|
-
|
|
570
|
-
```javascript
|
|
571
|
-
import EmberObject, { set } from '@ember/object';
|
|
572
|
-
import { gte } from '@ember/object/computed';
|
|
573
|
-
|
|
574
|
-
let Hamster = EmberObject.extend({
|
|
575
|
-
hasTooManyBananas: gte('numBananas', 10)
|
|
576
|
-
});
|
|
577
|
-
|
|
578
|
-
let hamster = Hamster.create();
|
|
579
|
-
|
|
580
|
-
hamster.hasTooManyBananas; // false
|
|
581
|
-
|
|
582
|
-
set(hamster, 'numBananas', 3);
|
|
583
|
-
hamster.hasTooManyBananas; // false
|
|
584
|
-
|
|
585
|
-
set(hamster, 'numBananas', 10);
|
|
586
|
-
hamster.hasTooManyBananas; // true
|
|
587
|
-
```
|
|
588
|
-
|
|
589
402
|
@method gte
|
|
590
403
|
@static
|
|
591
404
|
@for @ember/object/computed
|
|
@@ -627,27 +440,6 @@ export function gte(dependentKey, value) {
|
|
|
627
440
|
hamster.needsMoreBananas; // true
|
|
628
441
|
```
|
|
629
442
|
|
|
630
|
-
Classic Class Example:
|
|
631
|
-
|
|
632
|
-
```javascript
|
|
633
|
-
import EmberObject, { set } from '@ember/object';
|
|
634
|
-
import { lt } from '@ember/object/computed';
|
|
635
|
-
|
|
636
|
-
let Hamster = EmberObject.extend({
|
|
637
|
-
needsMoreBananas: lt('numBananas', 3)
|
|
638
|
-
});
|
|
639
|
-
|
|
640
|
-
let hamster = Hamster.create();
|
|
641
|
-
|
|
642
|
-
hamster.needsMoreBananas; // true
|
|
643
|
-
|
|
644
|
-
set(hamster, 'numBananas', 3);
|
|
645
|
-
hamster.needsMoreBananas; // false
|
|
646
|
-
|
|
647
|
-
set(hamster, 'numBananas', 2);
|
|
648
|
-
hamster.needsMoreBananas; // true
|
|
649
|
-
```
|
|
650
|
-
|
|
651
443
|
@method lt
|
|
652
444
|
@static
|
|
653
445
|
@for @ember/object/computed
|
|
@@ -689,27 +481,6 @@ export function lt(dependentKey, value) {
|
|
|
689
481
|
hamster.needsMoreBananas; // true
|
|
690
482
|
```
|
|
691
483
|
|
|
692
|
-
Classic Class Example:
|
|
693
|
-
|
|
694
|
-
```javascript
|
|
695
|
-
import EmberObject, { set } from '@ember/object';
|
|
696
|
-
import { lte } from '@ember/object/computed';
|
|
697
|
-
|
|
698
|
-
let Hamster = EmberObject.extend({
|
|
699
|
-
needsMoreBananas: lte('numBananas', 3)
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
let hamster = Hamster.create();
|
|
703
|
-
|
|
704
|
-
hamster.needsMoreBananas; // true
|
|
705
|
-
|
|
706
|
-
set(hamster, 'numBananas', 5);
|
|
707
|
-
hamster.needsMoreBananas; // false
|
|
708
|
-
|
|
709
|
-
set(hamster, 'numBananas', 3);
|
|
710
|
-
hamster.needsMoreBananas; // true
|
|
711
|
-
```
|
|
712
|
-
|
|
713
484
|
@method lte
|
|
714
485
|
@static
|
|
715
486
|
@for @ember/object/computed
|
|
@@ -762,34 +533,6 @@ export function lte(dependentKey, value) {
|
|
|
762
533
|
tomster.readyForHike; // null
|
|
763
534
|
```
|
|
764
535
|
|
|
765
|
-
Classic Class Example:
|
|
766
|
-
|
|
767
|
-
```javascript
|
|
768
|
-
import EmberObject, { set } from '@ember/object';
|
|
769
|
-
import { and } from '@ember/object/computed';
|
|
770
|
-
|
|
771
|
-
let Hamster = EmberObject.extend({
|
|
772
|
-
readyForCamp: and('hasTent', 'hasBackpack'),
|
|
773
|
-
readyForHike: and('hasWalkingStick', 'hasBackpack')
|
|
774
|
-
});
|
|
775
|
-
|
|
776
|
-
let tomster = Hamster.create();
|
|
777
|
-
|
|
778
|
-
tomster.readyForCamp; // false
|
|
779
|
-
|
|
780
|
-
set(tomster, 'hasTent', true);
|
|
781
|
-
tomster.readyForCamp; // false
|
|
782
|
-
|
|
783
|
-
set(tomster, 'hasBackpack', true);
|
|
784
|
-
tomster.readyForCamp; // true
|
|
785
|
-
|
|
786
|
-
set(tomster, 'hasBackpack', 'Yes');
|
|
787
|
-
tomster.readyForCamp; // 'Yes'
|
|
788
|
-
|
|
789
|
-
set(tomster, 'hasWalkingStick', null);
|
|
790
|
-
tomster.readyForHike; // null
|
|
791
|
-
```
|
|
792
|
-
|
|
793
536
|
@method and
|
|
794
537
|
@static
|
|
795
538
|
@for @ember/object/computed
|
|
@@ -833,31 +576,6 @@ export const and = generateComputedWithPredicate('and', value => value);
|
|
|
833
576
|
tomster.readyForBeach; // 'Check'
|
|
834
577
|
```
|
|
835
578
|
|
|
836
|
-
Classic Class Example:
|
|
837
|
-
|
|
838
|
-
```javascript
|
|
839
|
-
import EmberObject, { set } from '@ember/object';
|
|
840
|
-
import { or } from '@ember/object/computed';
|
|
841
|
-
|
|
842
|
-
let Hamster = EmberObject.extend({
|
|
843
|
-
readyForRain: or('hasJacket', 'hasUmbrella'),
|
|
844
|
-
readyForBeach: or('hasSunscreen', 'hasUmbrella')
|
|
845
|
-
});
|
|
846
|
-
|
|
847
|
-
let tomster = Hamster.create();
|
|
848
|
-
|
|
849
|
-
tomster.readyForRain; // undefined
|
|
850
|
-
|
|
851
|
-
set(tomster, 'hasUmbrella', true);
|
|
852
|
-
tomster.readyForRain; // true
|
|
853
|
-
|
|
854
|
-
set(tomster, 'hasJacket', 'Yes');
|
|
855
|
-
tomster.readyForRain; // 'Yes'
|
|
856
|
-
|
|
857
|
-
set(tomster, 'hasSunscreen', 'Check');
|
|
858
|
-
tomster.readyForBeach; // 'Check'
|
|
859
|
-
```
|
|
860
|
-
|
|
861
579
|
@method or
|
|
862
580
|
@static
|
|
863
581
|
@for @ember/object/computed
|
|
@@ -894,27 +612,6 @@ export const or = generateComputedWithPredicate('or', value => !value);
|
|
|
894
612
|
alex.name; // '@machty'
|
|
895
613
|
```
|
|
896
614
|
|
|
897
|
-
Classic Class Example:
|
|
898
|
-
|
|
899
|
-
```javascript
|
|
900
|
-
import EmberObject, { set } from '@ember/object';
|
|
901
|
-
import { alias } from '@ember/object/computed';
|
|
902
|
-
|
|
903
|
-
let Person = EmberObject.extend({
|
|
904
|
-
name: 'Alex Matchneer',
|
|
905
|
-
|
|
906
|
-
nomen: alias('name')
|
|
907
|
-
});
|
|
908
|
-
|
|
909
|
-
let alex = Person.create();
|
|
910
|
-
|
|
911
|
-
alex.nomen; // 'Alex Matchneer'
|
|
912
|
-
alex.name; // 'Alex Matchneer'
|
|
913
|
-
|
|
914
|
-
set(alex, 'nomen', '@machty');
|
|
915
|
-
alex.name; // '@machty'
|
|
916
|
-
```
|
|
917
|
-
|
|
918
615
|
@method alias
|
|
919
616
|
@static
|
|
920
617
|
@for @ember/object/computed
|
|
@@ -955,31 +652,6 @@ export const or = generateComputedWithPredicate('or', value => !value);
|
|
|
955
652
|
teddy.nickName; // 'TeddyBear'
|
|
956
653
|
```
|
|
957
654
|
|
|
958
|
-
Classic Class Example:
|
|
959
|
-
|
|
960
|
-
```javascript
|
|
961
|
-
import EmberObject, { set } from '@ember/object';
|
|
962
|
-
import { oneWay } from '@ember/object/computed';
|
|
963
|
-
|
|
964
|
-
let User = EmberObject.extend({
|
|
965
|
-
firstName: null,
|
|
966
|
-
lastName: null,
|
|
967
|
-
|
|
968
|
-
nickName: oneWay('firstName')
|
|
969
|
-
});
|
|
970
|
-
|
|
971
|
-
let teddy = User.create({
|
|
972
|
-
firstName: 'Teddy',
|
|
973
|
-
lastName: 'Zeenny'
|
|
974
|
-
});
|
|
975
|
-
|
|
976
|
-
teddy.nickName; // 'Teddy'
|
|
977
|
-
|
|
978
|
-
set(teddy, 'nickName', 'TeddyBear'); // 'TeddyBear'
|
|
979
|
-
teddy.firstName; // 'Teddy'
|
|
980
|
-
teddy.nickName; // 'TeddyBear'
|
|
981
|
-
```
|
|
982
|
-
|
|
983
655
|
@method oneWay
|
|
984
656
|
@static
|
|
985
657
|
@for @ember/object/computed
|
|
@@ -1039,32 +711,6 @@ export function oneWay(dependentKey) {
|
|
|
1039
711
|
teddy.firstName; // 'Teddy'
|
|
1040
712
|
```
|
|
1041
713
|
|
|
1042
|
-
Classic Class Example:
|
|
1043
|
-
|
|
1044
|
-
```javascript
|
|
1045
|
-
import EmberObject, { set } from '@ember/object';
|
|
1046
|
-
import { readOnly } from '@ember/object/computed';
|
|
1047
|
-
|
|
1048
|
-
let User = EmberObject.extend({
|
|
1049
|
-
firstName: null,
|
|
1050
|
-
lastName: null,
|
|
1051
|
-
|
|
1052
|
-
nickName: readOnly('firstName')
|
|
1053
|
-
});
|
|
1054
|
-
|
|
1055
|
-
let teddy = User.create({
|
|
1056
|
-
firstName: 'Teddy',
|
|
1057
|
-
lastName: 'Zeenny'
|
|
1058
|
-
});
|
|
1059
|
-
|
|
1060
|
-
teddy.nickName; // 'Teddy'
|
|
1061
|
-
|
|
1062
|
-
set(teddy, 'nickName', 'TeddyBear'); // throws Exception
|
|
1063
|
-
// throw new EmberError('Cannot Set: nickName on: <User:ember27288>' );`
|
|
1064
|
-
|
|
1065
|
-
teddy.firstName; // 'Teddy'
|
|
1066
|
-
```
|
|
1067
|
-
|
|
1068
714
|
@method readOnly
|
|
1069
715
|
@static
|
|
1070
716
|
@for @ember/object/computed
|
|
@@ -1104,25 +750,6 @@ export function readOnly(dependentKey) {
|
|
|
1104
750
|
hamster.cavendishCount; // 5
|
|
1105
751
|
```
|
|
1106
752
|
|
|
1107
|
-
Classic Class Example:
|
|
1108
|
-
|
|
1109
|
-
```javascript
|
|
1110
|
-
import EmberObject, { set } from '@ember/object';
|
|
1111
|
-
import { deprecatingAlias } from '@ember/object/computed';
|
|
1112
|
-
|
|
1113
|
-
let Hamster = EmberObject.extend({
|
|
1114
|
-
bananaCount: deprecatingAlias('cavendishCount', {
|
|
1115
|
-
id: 'hamster.deprecate-banana',
|
|
1116
|
-
until: '3.0.0'
|
|
1117
|
-
})
|
|
1118
|
-
});
|
|
1119
|
-
|
|
1120
|
-
let hamster = Hamster.create();
|
|
1121
|
-
|
|
1122
|
-
set(hamster, 'bananaCount', 5); // Prints a deprecation warning.
|
|
1123
|
-
hamster.cavendishCount; // 5
|
|
1124
|
-
```
|
|
1125
|
-
|
|
1126
753
|
@method deprecatingAlias
|
|
1127
754
|
@static
|
|
1128
755
|
@for @ember/object/computed
|