2016-03-04 3 views
1

Моего компонентаEmber.js: Как передать атрибут компонента в обратный вызов jQuery?

{{remind-me datetime=model.reminderDatetime comment=model.reminderComment}} 

Моих напоминающий-me.js:

import Ember from 'ember'; 

export default Ember.Component.extend({ 

    picker: $(), 

    didInsertElement() { 
     this._super(...arguments); 

     this.picker = $('.pickadate').pickadate({ 
       format: 'mmm dd, yyyy', 
       onOpen: function() { 

        // how to get there this.get('datetime') ?   

       } 
     }); 
    } 
}); 

Как пройти компонент атрибут DateTime в Jquery обратного вызова OnOpen? Спасибо за ответы.

ответ

2

Вместо этого вы можете использовать функцию стрелки, она свяжет this с окружающим пространством, являющимся компонентом. Попробуйте что-то вроде:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    picker: $(), 

    didInsertElement() { 
    this._super(...arguments); 

    this.picker = $('.pickadate').pickadate({ 
     format: 'mmm dd, yyyy', 
     onOpen:() => { 
     this.get('datetime'); 
     } 
    }); 
    } 
}); 
+0

спасибо. Это работает! – Dmytro

-1

В дополнение к предыдущему ответу.

1) Вы можете использовать привязывать

   onOpen: function() { 

        // how to get there this.get('datetime') ?   

       }.bind(this) 

2) Или магазин «это» в константе в функции головы, где содержание «это» содержание еще не изменилось.

const self = this; 
    ... 
    onOpen: function() { 

     self.get('datetime')   

    } 
+0

Хм .. Хорошая идея! Спасибо. – Dmytro

Смежные вопросы