我有父模型<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:weightSum="10">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="9"
android:orientation="vertical"
android:paddingBottom="5dp">
<AutoCompleteTextView
android:id="@+id/fromStationField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:completionThreshold="1"
android:gravity="left|start"
android:hint="From"
android:textAlignment="textStart" />
<AutoCompleteTextView
android:id="@+id/toStationField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:completionThreshold="1"
android:hint="To"
android:paddingLeft="4dp"
android:paddingRight="4dp" />
</LinearLayout>
<ImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:src="@android:drawable/ic_swap" />
</LinearLayout>
</RelativeLayout>
。视图模型具有可观察的person
数组。要编辑/添加一个人,我有一个jQuery UI对话框(确定/取消)。
person
使用var viewModel = function(){
var self = this;
self.personEntry = ko.observable(new person());
self.people = ko.observableArray();
self.populatePeople = function(jsonPeopleObj){//adds person objects to people array};
};
绑定将personEntry
子模型绑定到jQuery UI对话框。使用with
可观察数组上的foreach
绑定生成表。
现在当我尝试修改记录时,我在点击该行时调用以下函数。
people
这将在jQuery UI对话框中打开包含所选行详细信息的对话框。但是,如果我更改一个值,然后按对话框上的取消,表格仍然会修改一个不应该发生的新值。有什么想法吗?
如果需要,我可以提供示例代码。
答案 0 :(得分:0)
我已经通过一些工作来解决这个问题......
https://jsfiddle.net/ramkiFiddle/v29exev5/59/
self.amendDetails = function(item, event) {
itemProgressed = item;
operation = 'Amend';
var tempObj = new Person(item.Name(), item.Age());
pageModel.personEntry(tempObj);
$("#personEntry").dialog('open');
}