我想創建在餘燼下述成分(模板/組件/回波hlabel-tf.hbs)綁定的參數餘燼分量和來自控制器
<div id="echo-hlabel-tf">
<span id="tf-label">{{label}}</span>
<span id="tf-value">
<input type="text" value={{textValue}}
{{action "validateRegExp" textValue regExp post on="focusOut"}}
{{action "showText" textValue post on="mouseUp"}}
/>
</span>
</div>
只是一個文本字段和處理它標籤放置在同一行中。
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
validateRegExp(text,regExpStr){
let regExpObj = new RegExp(regExpStr)
if(regExpObj.test(text)){
console.log('entry matches')
}else{
console.log('entry is wrong');
}
},
showText(text){
console.log(text);
}
}
});
我想從另一個模板使用該組件(模板/ programmers.hbs):
我在組件的控制器(組分/回波hlabel-tf.js)創建的功能<ul>
{{people-list title="List of programmers" people=model}}
</ul>
<div>
{{echo-hlabel-tf
label="Textfield horizontal"
textValue="..."
regExp="^([a-z0-9]{5})$"
}}
</div>
事情是,即使行爲是在事件觸發時觸發的,代表輸入值(textValue)的變量始終保持相同(「...」)。似乎外部模板和組件之間的綁定是在開始時創建的,但是如果我在文本字段中放置更多字母,那麼textValue的值將保持不變並且不會更改。我想,因爲我正在給textBox添加字母,使用showText方法在控制檯上打印它們,但我始終打印「...」
您的代碼中有'on ='focusOut''。你有沒有嘗試keyDown/keyUp/keyPress,這會改變每個鍵後的值。 –
今天下午我會試一試。在此先感謝 – Yago