If statement 使用IF语句和With语句侦听click事件击出JS

If statement 使用IF语句和With语句侦听click事件击出JS,if-statement,knockout.js,onclicklistener,If Statement,Knockout.js,Onclicklistener,页面加载时,输入字段应为空 当用户点击“编辑帖子”时,我调用KO点击和“选择”功能(所有工作)。。执行此调用时,所选行已正确绑定 当前代码在页面加载时自动绑定,因此第一条记录位于输入字段中 <div data-bind="with: Selected"> <input type="text" data-bind="value: Name" /> </div> <i title="Edit Post" data-bind="click: $pare

页面加载时,输入字段应为空

当用户点击“编辑帖子”时,我调用KO点击和“选择”功能(所有工作)。。执行此调用时,所选行已正确绑定

当前代码在页面加载时自动绑定,因此第一条记录位于输入字段中

<div data-bind="with: Selected">
    <input type="text" data-bind="value: Name" />
</div>
<i title="Edit Post" data-bind="click: $parent.select"></i>

黑客示例

<div data-bind="if **click: $parent.select then** with: Selected">
    <input type="text" data-bind="value: Name" />
</div>

<i title="Edit Post" data-bind="click: $parent.select"></i>

如果“单击”然后使用“执行”:选择“”,如何编写数据绑定

更新


添加示例代码:

通常,您只希望将其从所选的
可观察的
中删除。如果未填充,则不会渲染该区域。如果对其进行了优化,则将使用所选的
对象

因此,当您调用
$parent.select
时,您可能希望用对象填充
Selected


事实上,可观察对象是函数,因此,除非您需要运行其他逻辑,否则您甚至可以使用快捷方式,直接将您的
单击
绑定到所选的
可观察对象上。当前数据作为第一个参数传递,该参数设置可观察对象的值。

您将根据单击的项目更改所选属性

因此,一个示例viewModel可能类似于

var items = [{ Name: 'item1' }, { Name: 'item2' }];

var viewModel = {
    items: items,
    Selected: ko.observable(items[0])
}

viewModel.select = function(selectedItem) {
    // The first arg is the context of the item clicked
    // Selected in an observable
    viewModel.Selected(selectedItem);
};

然后,随着选定的更改。。。您的名称绑定将自动更新。

RP-最初我需要显示为“添加名称”的字段。。然后,当用户选择要编辑的行时,我们称之为Selected now,它是edit NAME。通过使用with Selected,整个div在初始加载时是隐藏的?我不确定我是否完全清楚你的整体结构。当
Selected
为空/未定义时,您当然可以对
Selected
使用
ifnot
绑定来显示某些内容。我希望业务名称区域始终可见,以便用户可以添加新记录或编辑所选记录。我可能会这样做:对新记录和现有记录使用相同的名称字段,然后更新所选记录或创建新记录。