0

プロパティへの「パス」を定義するエンティティ Person と文字列があるとします。たとえば、「Address.Country」としましょう。オブザーバブル保有国にアクセスできる機能はありますか?

4

1 に答える 1

1

getProperty および setProperty メソッドから開始できます。

var address = myEntity.getProperty("Address");
var country = address.getProperty("Country");

次に、使用できます

function getPropertyPathValue(obj, propertyPath) {
    var properties;
    if (Array.isArray(propertyPath)) {
        properties = propertyPath;
    } else {
        properties = propertyPath.split(".");
    }
    if (properties.length === 1) {
        return obj.getProperty(propertyPath);
    } else {
        var nextValue = obj;
        for (var i = 0; i < properties.length; i++) {
            nextValue = nextValue.getProperty(properties[i]);
            // == in next line is deliberate - checks for undefined or null.
            if (nextValue == null) {
               break;
            }
        }
        return nextValue;
    }
}

「propertyPath」パラメーターは、文字列の配列または「.」のいずれかです。区切りパス

   var country = getPropertyPath(myEntity, "Address.Country");

また

   var country = getPropertyPath(myEntity, ["Address", "Country"]);
于 2013-11-07T16:06:41.627 に答える