标签: knockout-extensions

如何从现有的observable中删除扩展器?

我正在使用Knockout Validation插件并使用扩展器根据需要设置observable:

myObservable.extend({required:true});
Run Code Online (Sandbox Code Playgroud)

添加后我可以移除扩展器吗?

knockout.js knockout-validation knockout-extensions

20
推荐指数
1
解决办法
7031
查看次数

检查扩展是否应用于observable

我想单元测试我的函数,它基本上从一组参数(TypeScript代码)构建一个observable数组:

private BuildObservables(parameters: Parameter[]) {
        var observables = {};

        for (var parameterName in parameters) {

            var p = parameters[parameterName];

            // Build observable
            observables[parameterName] = ko.observable(p.Value);

            // Attach validation
            if (p.IsRequired) {
                observables[parameterName].extend({ required: true });
            }
        }
        return observables;
    }
Run Code Online (Sandbox Code Playgroud)

我的测试看起来像这样:

var parameters = [];

// new Parameter(int value, bool isRequired)
parameters["Param1"] = new Parameter("123", true);
parameters["Param2"] = new Parameter("456", false);

var viewModel = BuildObservables(parameters);

ok(viewModel["Param1"] != null);
ok(viewModel["Param2"] != null);
Run Code Online (Sandbox Code Playgroud)

如果第一个参数isRequired设置为true,如何检查是否应用了扩展(验证)(BuildObservables中的"附加验证"部分)?

编辑:

在另一个功能我附加订阅者,我不知道如何测试他们是否正确附加.

knockout.js knockout-validation knockout-extensions

6
推荐指数
1
解决办法
1139
查看次数