2014-04-16 5 views
7

Ben bir giriş odaklanmış aldığında şu anda benim şablonu bu kullanıyorum ..
bir eylem tetiklemek için nasıl bilmek istiyorum:Bir giriş netlendiğinde bir eylem nasıl tetiklenir?

export default Ember.TextField.extend({ 
    onEvent: 'focusIn', 
    focusIn: function() { 
    this.sendAction('focusIn', this, event); 
    } 
}); 

ve bu tarih: {{view "clickinput" class="form-control" placeholder="search..." value=s action="focus"}}
ve görünüm olarak bu benim denetleyicisi: Ben chrome bu hatayı alıyorum

actions: { 
    focus: function() { 
    alert('f'); 
    } 
} 

ama çalışmıyor ..: Uncaught Error: Assertion Failed: The focusIn action was triggered on the component <[email protected]:clickinput::ember438>, but the action name (function superWrapper() { var ret, sup = this.__nextSuper; this.__nextSuper = superFunc; ret = func.apply(this, arguments); this.__nextSuper = sup; return ret; }) was not a string.

neden? Düşündüğümden daha

cevap

15

O
Sadece teşekkür yüzden bir başlangıç ​​noktası olarak cevabınızı kullanılan

-1

Şablonumdaki {{input class="form-control" placeholder="search..." value=s focus-in="focus"}} yazmak zorunda .. simplier olduğu ortaya çıktı! İşte benim için çalıştı budur:

Kor istatistik:

DEBUG: ------------------------------- 
DEBUG: Ember   : 1.7.1 
DEBUG: Ember Data  : 1.0.0-beta.11 
DEBUG: Handlebars  : 1.3.0 
DEBUG: jQuery   : 2.1.3 
DEBUG: Model Fragments : 0.2.7 
DEBUG: ------------------------------- 

Benim jenerik fonksiyonlar, arayacağım functions.js

Ember.TextField.reopen({ 
    attributeBindings: ['data-stripe'], 
    focusIn: function() { 
    return this.sendAction('focus-in'); 
    } 
}); 

Benim kontrolör

actions: { 
    focusField: function() { 
     debugger; 
    } 
    } 

Benim Gidon şablon

{{input focus-in="focusField" type="tel" maxlength="20" data-stripe="number" placeholder="Card Number" value=input.number autocomplete="cc-number"}}