私はTelerik UI Proコンポーネントを{N}(サポートなし)に使用しており、DataFormにいくつかの問題があります。Nativescript Pro UI - DataForm
オブジェクトをページコンテキストに渡すと、ピッカーエディタを使用するすべてのフィールドで正しい値を選択できません。
私は私が書いたコードを示します:
精巣-model.js
var Value = (function() {
function Value(text, value) {
this.text = text;
this.value = value;
}
return Value;
})();
var ValueModel = (function() {
function ValueModel() {}
Object.defineProperty(ValueModel.prototype, "model", {
get: function() {
if (!this._model) {
this._model = new Value("This is a text", "VALUE 1");
}
return this._model;
},
enumerable: true,
configurable: true
});
return ValueModel;
})();
exports.Value = Value;
exports.ValueModel = ValueModel;
teste.js
var ValueModel = require("./teste-model").ValueModel;
var page;
exports.onPageLoaded = function(args) {
console.log("Carregando página...");
page = args.object;
page.bindingContext = new ValueModel();
console.log(JSON.stringify(page.bindingContext));
}
teste.xml
<Page loaded="onPageLoaded"
xmlns:df="nativescript-telerik-ui-pro/dataform">
<StackLayout>
<df:RadDataForm id="myDataForm" source="{{ model }}">
<df:RadDataForm.properties>
<df:EntityProperty name="text" displayName="Text" index="0" />
<df:EntityProperty name="value" displayName="Value" index="1" valuesProvider="VALUE 0, VALUE 1, VALUE 2">
<df:EntityProperty.editor>
<df:PropertyEditor type="Picker" />
</df:EntityProperty.editor>
</df:EntityProperty>
</df:RadDataForm.properties>
</df:RadDataForm>
</StackLayout>
</Page>
フィールド値は「VALUE 1」を示すはずですがショー "VALUE 0":
これを解決するための任意のヒント?
更新
私はウラジミールは、推奨変更を加えたが、ピッカーのプロパティは、まだオブジェクトの変更を反映していません。
また、ランダムな値でデータフォームを埋めるために、ページにボタンを追加しました。 テキストプロパティは通常変更をリッスンしますが、pickerプロパティはリッスンしません。
ピッカー値を選択してボタンをクリックすると、プロパティは最初のプロバイダ値にリセットされます。
実際のコードは次のとおりです。
teste.xml
<Page loaded="onPageLoaded"
xmlns:df="nativescript-telerik-ui-pro/dataform">
<StackLayout>
<df:RadDataForm id="myDataForm" source="{{ model }}">
<df:RadDataForm.properties>
<df:EntityProperty name="text" displayName="Text" index="0" />
<df:EntityProperty name="value" displayName="Value" index="1" valuesProvider="VALUE 0, VALUE 1, VALUE 2">
<df:EntityProperty.editor>
<df:PropertyEditor type="Picker" />
</df:EntityProperty.editor>
</df:EntityProperty>
</df:RadDataForm.properties>
</df:RadDataForm>
<Button text="change" tap="changeModel" />
</StackLayout>
</Page>
teste.js
exports.onPageLoaded = function(args) {
console.log("Carregando página...");
page = args.object;
page.bindingContext = new ValueModel();
}
exports.changeModel = function(args) {
var arr = ["VALUE 0", "VALUE 1", "VALUE 2"];
page.bindingContext.set("model", new Value(
Math.random(10000, 99999).toString()
, arr[Math.floor(Math.random() * arr.length)]
)
);
console.log(JSON.stringify(page.bindingContext.model));
}
精巣-model.js
var Observable = require("data/observable").Observable;
var Value = (function() {
function Value(text, value) {
this.text = text;
this.value = value;
}
return Value;
})();
var ValueModel = (function(_super) {
__extends(ValueModel, _super);
function ValueModel() {
_super.call(this);
this.model = new Value("This is a texte","VALUE 1");
}
Object.defineProperty(ValueModel.prototype, "model", {
get: function() {
return this.get("_model");
},
set: function(_model) {
this.set("_model", _model);
},
enumerable: true,
configurable: true
});
return ValueModel;
})(Observable);
exports.Value = Value;
exports.ValueModel = ValueModel;
ウラジミール、ありがとう!私はあなたが推奨する変更を行いましたが、ピッカー・フィールドはまだオブジェクトの変更を反映していません。 –
上記のサンプル・リポジトリ(https://github.com/telerik/nativescript-ui-samples/tree/master)でこの動作を再現できますか? –
サンプルのrepoをフォークし、person-model.tsをPersonというオブジェクトをLos Angelesの都市で開始するように変更しました。アプリケーションでは、プロパティの調整を除いて、この変更はどこでも見ることができます。これは、都市プロパティのピッカーエディタを使用します。 –