2011-02-04 8 views
0

DashCodeとdataSourcesに関する質問があります。javascriptファイルでJSONオブジェクトを定義し、dataSourceにリンクし、企業名をユーザーインターフェイス( 'list'要素)に接続しました。 JSONオブジェクトは次のようになります。Dashcodeの既存のデータソースに新しいアイテムを追加(削除)する方法は?

{ 
    items: [ 
     { company:'A', product:'a1', color:'red' }, 
     { company:'B', product:'b2', color:'blue' }, 
     { company:'C', product:'c3', color:'white' } 
    ] 
} 

追加の項目を既存のデータソースにプログラムで追加(または削除)するにはどうすればよいですか?コードのこの部分は、実際にデータソースに(除去)追加項目を追加

function addElement() { 
    var newElement = [{company:'D', product:'d4', color:'yellow' }]; 
    var ds = dashcode.getDataSource('list'); 
    ds.arrangedObjects.addObject(newElement); 
} 

function delElement() 
{ 
    var ds = dashcode.getDataSource('list'); 
    if (ds.hasSelection()) { 
     var index = ds.selectionIndex(); 
     ds.arrangedObjects.removeObjectAtIndex(index); 
    } 
} 

:私は、次のアプローチを使用しています。しかし、list.filterpredicateを使用して新しい項目のリストを検索すると、新しい項目は無視されます。

項目を既存のデータソースにプログラムで追加(または削除)する「正しい方法」とは何ですか?

ご協力いただきありがとうございます。ここで

答えて

2

質問への答えです:

1)main.js.でKVOオブジェクトを定義します。

anObj = Class.create(DC.KVO, { 
    constructor: function(company, product, color) { 
     this.company = company; 
     this.product = product; 
     this.color = color; 
    } 
}); 

2)関数「はaddElement」のアップデート版である:このステップでは、オブジェクトのバインド可能にすることが重要である

function addElement() { 
    var newElement = new anObj('D', 'd4', 'yellow'); 
    var ds = dashcode.getDataSource('list'); 
    var inventory = ds.valueForKeyPath('content'); 
    inventory.addObject(newElement); 
} 

3)関数「removeElement」の更新版が似ています:

この情報が役立ちますようお願いいたします。

関連する問題