Welcome to Amber ;-)
Each object that extends the Ember Observable mixin supports a method get()(among others).
When you call this.get(), it thisshould reference such an object (Route, Controller, Component, your own class, which extends Ember.Object, etc.). Calling get()for a simple object may cause an error. Let me show the difference:
const emberObjectInstance = Ember.Object.create({
name: 'Bala'
});
emberObjectInstance.get('name');
const plainObject = { name: 'Bala'};
plainObject.get('name');
However, use Ember.get()in both cases:
Ember.get(emberObjectInstance, 'name');
Ember.get(plainObject, 'name');
import { get } from '@ember/object';
get(emberObjectInstance, 'name');
get(plainObject, 'name');
: , get() ( - , ..), .
, Ember.get() , , , . setupController() setupController() setupController().
setupController(controller, model){
this._super(...arguments);
const name = Ember.get(model, 'name');
controller.set('isNamePresentOnSetup', Ember.isPresent(name));
}
...
const modelMock = { name: 'Bala' };
const controllerMock = Ember.Object.create();
subject.setupController(controllerMock, modelMock);
assert.ok(controllerMock.get('isNamePresentOnSetup'), "property 'isNamePresentOnSetup' set up correctly if model name is present");
...
Ember.set(controller, 'isNamePresentOnSetup', Ember.isPresent(name)) setupController().
, , Ember, , Ember . Ember:
https://guides.emberjs.com/v2.9.0/object-model/
https://guides.emberjs.com/v2.9.0/object-model/computed-properties/
https://guides.emberjs.com/v2.9.0/object-model/reopening-classes-and-instances/
: get() , POJO. , objectInstance.get('abc') b undefined undefined. objectInstance.abc b undefined, .