3

ember にgetとがあることは誰もが知っていますが、emberjs オブジェクトのキーをどのように取得しますか?setdelete

オブジェクトがこのように見えると仮定します

Ember.Object.create({
    conf: {
        name: 'John',
        age: 16
    }
});

データ転送中に、からキーを削除する必要がありconfますage。からキーを正しく削除するにはどうすればよいですconfか? 試してみましたがset('conf.age', null)undefinedまったく機能していないようです。

編集

背景を少し。未定義またはnullに設定すると機能しないと言うとき、それは私のニーズに合わないことを意味します。私のクラスは、confデータを Mongo コレクションに自動的に保存しています。たとえば、使用していないキーが 1 つあり、それを処分したいとします。どのようにそれを削除しますか?

保存プロセス/データの検証を管理するより大きなクラスがあるため、削除を行うためだけにコントローラーを拡張することはあまりうまくいきません (醜い) ことに注意してください。そしてbeforeSave、未使用のキーをクリーンアップするために拡張クラスがフックできるこのアクションがありますが、問題はこのキーを削除する方法だけですか?

おそらくあらゆる種類のバインディング/オブザーバーを処理するために、そのような単純なアクションは ember には存在しないようです..

4

4 に答える 4

0

実際、これを次のように処理する独自の関数を定義できます

Ember.Object.create({
    conf: {
        name: 'John',
        age: 16
    },
    deleteProp:function(key)
    {
       delete this.conf[key]
    }
});
于 2013-03-12T10:04:47.417 に答える
0

キーを単純に「削除」しようとしましたか ( https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/delete ) ? Ember オブジェクトの名前が obj であると仮定すると、私はそうします

delete obj.conf.age;
于 2013-03-12T08:13:59.010 に答える