小编Pin*_*hah的帖子

knockoutjs:我们可以用参数创建dependentObservable函数吗?

我有多个输入框,我想根据用户的选择隐藏/取消隐藏.

我可以通过为每个输入分别使用dependentObservable来实现这一点,然后使dependentObservable观察父选择.

viewModel.showField1= ko.dependentObservable(function () {
    return viewModel.selectedType() ? IsFeatureVisible(viewModel, "BusinessFieldName1") : false;
}, viewModel
);

viewModel.showField1= ko.dependentObservable(function () {
    return viewModel.selectedType() ? IsFeatureVisible(viewModel, "BusinessFieldName2") : false;
}, viewModel
);
Run Code Online (Sandbox Code Playgroud)

对于每个领域来说,这都是一种乏味的做法.我可以使用可以获取参数的dependentObservable函数绑定元素吗?重要的是它应该在父级更改时触发

其他选项是当父更改时,我遍历元素并隐藏/取消隐藏,但这将要求我映射元素id < - >字段的业务名称.

当前

 <tr data-bind="visible: showField1">
 <tr data-bind="visible: showField2">
Run Code Online (Sandbox Code Playgroud)

期望

<tr data-bind="visible: showField('BusinessFieldName1')">
<tr data-bind="visible: showField('BusinessFieldName2')">
Run Code Online (Sandbox Code Playgroud)

knockout.js

23
推荐指数
2
解决办法
1万
查看次数

与jQuery验证绑定的单选选项不起作用

我正在将一个对象列表绑定到一个select使用的淘汰赛.对象类可以包含任意数量的属性

<select id="TheProperty_City" 
        name="TheProperty_City" 
        class="required" 
        data-bind="options: cityList, 
                   optionsText: 'Name',  
                   value: selectedCity, 
                   optionsCaption: '--select the city--'" />
Run Code Online (Sandbox Code Playgroud)

这非常好用,我可以使用viewModel.selectedCity().NameviewModel.selectedCity().Value加载子元素.

我的问题是jQuery验证.如果我保留上述语句,jQuery即使在选择后也不会重置错误.

我通过optionsValue在bind中指定它来修复它,但然后selectedCity返回标量值而不是整个对象.任何想法如何保持对象行为或以不同方式进行验证?

 <select id="TheProperty_City" 
         name="TheProperty_City" 
         class="required" 
         data-bind="options: cityList, 
                    optionsText: 'Name',  
                    optionsValue: 'Value', //added the optionsValue
                    value: selectedCity, 
                    optionsCaption: '--select the city--'" />
Run Code Online (Sandbox Code Playgroud)

optionsValue未指定时,错误仍然存​​在:

没有OptionsValue

这是我的对象观察selectedCity:

watch中的viewModel.selectedCity()返回一个对象

这是指定selectedCity何时的对象监视optionsValue:

使用OptionsValue

asp.net asp.net-mvc jquery jquery-validate knockout.js

9
推荐指数
2
解决办法
6340
查看次数

knockoutjs提交ko.utils.postJson问题

我跟着http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/文章使用ko.utils.postJson从提交数据并导航到不同的视图控制器

我曾经ko.utils.postJson(location.href, {model: ko.toJson(viewModel)});提交数据,但提交给服务器的模型有空属性.

ko.utils.postJson(location.href, {model: viewModel}); 也失败了.

客户端viewModel具有除服务器模型之外的其他属性,但我相信如果它与$ ajax post方法一起使用,它应该与KO post一起使用

如果我将模型传递给它,它就有效

ko.utils.postJson(location.href, 
    {model: {P1:this.p1(), P2:this.p2(), P3: this.p3()}}); 
Run Code Online (Sandbox Code Playgroud)

我必须在提交前映射每个属性吗?当使用()用于viewModel属性时,它也非常令人困惑

服务器代码

 [HttpPost]
        public ActionResult SearchProperty([FromJson]MyModel model)
        {
            try
            {
                return View("XYZ", model);
            }
            catch (Exception e)
            {
            }
        }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc knockout.js

3
推荐指数
1
解决办法
4116
查看次数