1

權配置的對象屬性,所以我必須要對一些骨幹機型,並在其中的一個我有一個具有一組鍵和值,它的值是一個對象通過從字符串中找到密鑰進行修改。如何設置一個骨幹模式

於是我開始了這是建立在以下原則代碼,我與如何和爲什麼這個代碼將輸出真挺舒服:

var boundData = { 
    text: 'value' 
} 
var key = 'text'; 
return (boundData[key] === 'value'); 

因此要設置屬性的值,我會這樣做:

boundData[key] = 'new value'; 

然後,我決定我所有的現有類轉化爲骨幹機型。我碰到的問題是我不能再用等號運算符來改變我的屬性,而是使用Backbone爲模型提供的set方法。這個方法接受一個字符串作爲第一個參數,這個字符串標識了我試圖改變的變量的關鍵字。

this.set("boundData[" + settings.name + "]", new OpenCore.boundData(settings)); 

這似乎並沒有工作,也不做這個的:

this.set("boundData." + settings.name, new OpenCore.boundData(settings)); 

解決它。在我寫出問題的同時,我想出了一個辦法。但是我想我會把它留在這裏,以防其他人遇到同樣的問題。

這是一個解決方案,雖然它可能不是最好的(我有興趣,如果有人能得到排序原始的方式),但它似乎工作。

var boundData = this.get('boundData'); //Create a reference of the object with get(). 
boundData[settings.name] = new OpenCore.boundData(settings); //Update this reference. 
//The change will be reflected in the original instance or you can just: 
this.set('boundData', boundData); 

希望這可以幫助別人!

回答

2

這是一個解決方案,雖然它可能不是最好的(我有興趣,如果有人能得到排序原始的方式),但它似乎工作。

var boundData = this.get('boundData'); //Create a reference of the object with get(). 
boundData[settings.name] = new OpenCore.boundData(settings); //Update this reference. 
//The change will be reflected in the original instance or you can just: 
this.set('boundData', boundData); 

希望這可以幫助別人!