簡體   English   中英

如何通過可觀察屬性(剔除)進行查看

[英]How to pass a observable property (of knockout) to view

我有一個與ko.observableArray([])綁定的下拉列表。 在這里,我正在vm.selectedUser中捕獲選擇的值,這是一個ko.observable()。 我想將此值分配給onchange事件@ Html.HiddenFor(m => m.UserName,新{id =“ hiddenUser”})上的隱藏字段

$(“#hiddenUser”)。val(vm.selectedUser);

請幫忙。 謝謝

您可以訂閱更改以執行此操作

vm.selectedUser.subscribe(function(newValue) {
    $("#hiddenUser").val(newValue));
});

或只是將隱藏字段綁定到您的可觀察范圍,這也應該起作用

@Html.HiddenFor(m => m.UserName, new {id="hiddenUser",data_bind = "value: selectedUser" })

您可以執行類似DEMO的操作 (我以自己的編碼風格創建了小提琴,抱歉,可能與您不匹配,抱歉!)

假設,

var Users = ko.observableArray([]);//Your User List
var SelectedUser=ko.observable();//Your Dropdown selected Item, can be ID or Name.

您可以為下拉菜單的更改事件編寫/定義函數:-

function selectionChanged(data){
console.log(SelectedUser());
    $('#hiddenUser').val(SelectedUser());//Displaying it in Textbox
            $('#hiddenUser2').val(SelectedUser());//Saving it in hidden field

};

我的HTML標記如下:

<select data-bind="options: Users, optionsText: 'Name', optionsValue: 'Id',value: SelectedUser,event: { change: selectionChanged }"></select>

<input type="text" id="hiddenUser"></input>
<input type="hidden" id="hiddenUser2"></input>

您還可以查看RP Niemeyer的Fiddle示例

無需jQuery和訂閱,只需將隱藏的輸入直接綁定到selectedUser可觀察的對象即可:

@Html.HiddenFor(m => m.UserName, new {id="hiddenUser", data_bind="value: selectedUser" })

請注意,它是“ data_bind”而不是“ data-bind”。 在Razor中,破折號是無效的名稱字符,但是它將自動將下划線轉換為破折號。

[這並不意味着要成為廣告,但這是我在視頻中演示的關於在WintellectNOW dot com上同時使用Knockout和MVC的項目之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM