如何使用 select 绑定敲除来制作选项 selected?
How to make option selected using select binding of knockout?
我想在 select 框中 select 默认选项。
我尝试了很多解决方案,但都没有成功。
- 我有很多选项,比方说 processChannels。
- 然后我通过将我的选项数组分配给 select 下拉列表来创建 select 选项。
- 现在我有一个值存储在一个变量 processTaskActor 中。
我想将 processTaskActor 值 select 编辑到 select 下拉列表。
下面是我的代码
<div>
<select data-bind="options: processChannels,
optionsText: 'propertyText',
optionsValue: $data,
value: processTaskActor,
valueUpdate: 'input' ">
</select>
<div data-bind="with:processTaskActor">
<div data-bind="text: propertyText">
</div>
</div>
<script>
var ViewModel = function(first, last) {
self.processChannels = [
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Reject pruchase"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Purchase Approved"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Purchase approved high amount"
},
{
"propertyName": "Manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Manager Approval"
},
{
"propertyName": "Finance manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Finance manager Approve High amount"
}
];
self.processTaskActor = ko.observable({
"propertyName": "Finance manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Finance manager Approve High amount"
});
};
ko.applyBindings(new ViewModel());
</script>
我没怎么用knockout
请帮我解决问题。
抱歉英语不好
试试这个:self.processTaskActor = ko.observable(self.processChannels[5]);
首先,您需要使您的 processTaskActor 成为一个可观察对象,并将 processChannels 成为一个可观察对象数组。
self.processTaskActor = ko.observable();
self.processChannels = ko.observableArray...
然后您可以在可观察数组中搜索您想要的确切对象。在您创建具有相同值的新对象之前。
var processTaskActor = ko.utils.arrayFirst(self.processChannels(), function (process) {
return process.propertyName === "Finance manager" &&
process.propertyText === "Finance manager Approve High amount";
});
self.processTaskActor(processTaskActor);
看到这个fiddle:
我想在 select 框中 select 默认选项。
我尝试了很多解决方案,但都没有成功。
- 我有很多选项,比方说 processChannels。
- 然后我通过将我的选项数组分配给 select 下拉列表来创建 select 选项。
- 现在我有一个值存储在一个变量 processTaskActor 中。
我想将 processTaskActor 值 select 编辑到 select 下拉列表。
下面是我的代码
<div>
<select data-bind="options: processChannels,
optionsText: 'propertyText',
optionsValue: $data,
value: processTaskActor,
valueUpdate: 'input' ">
</select>
<div data-bind="with:processTaskActor">
<div data-bind="text: propertyText">
</div>
</div>
<script>
var ViewModel = function(first, last) {
self.processChannels = [
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Reject pruchase"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Purchase Approved"
},
{
"propertyName": "Initiator",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Initiator Purchase approved high amount"
},
{
"propertyName": "Manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Manager Approval"
},
{
"propertyName": "Finance manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Finance manager Approve High amount"
}
];
self.processTaskActor = ko.observable({
"propertyName": "Finance manager",
"propertyType": "User",
"propertyValue": "",
"propertyText": "Finance manager Approve High amount"
});
};
ko.applyBindings(new ViewModel());
</script>
我没怎么用knockout
请帮我解决问题。
抱歉英语不好
试试这个:self.processTaskActor = ko.observable(self.processChannels[5]);
首先,您需要使您的 processTaskActor 成为一个可观察对象,并将 processChannels 成为一个可观察对象数组。
self.processTaskActor = ko.observable();
self.processChannels = ko.observableArray...
然后您可以在可观察数组中搜索您想要的确切对象。在您创建具有相同值的新对象之前。
var processTaskActor = ko.utils.arrayFirst(self.processChannels(), function (process) {
return process.propertyName === "Finance manager" &&
process.propertyText === "Finance manager Approve High amount";
});
self.processTaskActor(processTaskActor);
看到这个fiddle: