1

私は私のビューにこれらの行を持っています:

 //this code is within a {{#each item in controller.content}} so id will not be unique
 //so by giving it just an id like i have is not going to work 
 {{#each item in controller.content}}
   <div class="pull-right" id="qnty-bulk">{{view Ember.TextField class="span1 qnty-bulk" id="qnty-bulk" valueBinding="item.qnty" type="number" min="1" max="9999999" disabled=true}}</div>
   <button class="pull-right" {{ action "increase" }}>
       Up
   </button>
 {{/each}}

私のコントローラーでは、アクションに持っています

 actions: {
    increase: function() {
        var inputField = $("#qnty-bulk");  //how can I access the Ember.TextField here for each of my items in the {{#each item in controller.content}}??
        var inputValue = inputField.val();
        inputValue = (inputValue != null && inputValue != '' ? (isNaN(inputValue) ? 0 : inputValue) : 0);
        inputValue++;
        console.log(inputField.val());
        inputField.val(inputValue);
    },

上ボタンをクリックするたびに、テキストフィールドの値を 1 ずつ増やしたいのですが、どうすればよいですか? jqueryは使えますか?

4

2 に答える 2

0

jQuery を使用しないでください。

できることは、コンテンツ内の個々のアイテムをincreaseアクションに渡し、アクション内でその値を増やすことです。

<div class="pull-right">
 {{input value=item.qnty type="number" min="1" max="9999999" disabled=true}}
</div>
<button class="pull-right" {{ action "increase" this}}>
 Up
</button>

そしてあなたのコントローラーで:

actions: {
increase: function(item) {
    var qnty = Ember.get(item,'qnty');
    Ember.set(item,'qnty',++qnty);
 }
}

ユースケースのサンプルJsbin

于 2013-11-11T09:06:23.417 に答える