3

jQueryメソッドを使用してオブジェクトを非表示にしようとしていますhide()が、機能しません。

console.log()を使用して、呼び出された関数の引数の値を確認したので、Imが正しく機能していないことがわかります。しかし、私はそれを機能させる方法を知りません...

これが私が持っているものです:

#------------------------Model------------------------


App.Monster = Ember.Object.extend({

name: "",
hp: 0,
isDead : false,

isDeadChanged: function(target, value){
    App.monstersController.kill(target);
}.observes('isDead')

});



#------------------------Controller------------------------




App.monstersController = Ember.ArrayProxy.create({

content:[],

createMonster: function(name,hp){
    var monster = App.Monster.create({name:name});
    this.pushObject(monster);
},


kill: function(target){

    //I Want the selected object to hide by using Jquery hide method!!
    $('target').hide();

    this.removeObject(target);


},


#------------------------HTML FILE------------------------



{{#each App.monstersController contentBinding="App.monstersController.content" tagName="ul"}}
    <li>
        {{view Ember.Checkbox checkedBinding="isDead"}}
        <label for="" {{bindAttr class="isDead"}}>{{name}}</label>
    </li>
{{/each}}
4

2 に答える 2

4

通常、DOM スクリプト パターンを Ember に持ち込むことはうまくいきません。Ember は DOM 操作に関するものではなく、オブジェクトを使用してアプリケーションを記述するためのものだからです。アプリケーションの DOM 表現は、基になるデータ オブジェクトの状態を反映するように自動的に更新されます。

Ember.View は、その可視性 (およびその子ビューの可視性) をisVisibleプロパティで追跡し、その DOM 表現の切り替えを処理します。特定のビュー コンテキストの可視性のセマンティック オブジェクトの意味を明らかにするように努める必要があります。たとえば、todo リストの完成した項目を非表示にすると決めた場合は、次のようにします。

{{#each item in controller}}
  {{view App.TodoItemView isVisibileBinding="item.isComplete"}} <a {{action kill item}}>Done!</a>
{{/each}}
于 2012-12-14T14:52:09.190 に答える
-1

引用しないでくださいtarget

kill: function(target){   
    //I Want the selected object to hide by using Jquery hide method!!
    $(target).hide();   
    this.removeObject(target);
},

$('target')<target>要素を探します。

于 2012-12-14T07:36:13.427 に答える