Knockout.js Knockoutjs自定义绑定样式子项

Knockout.js Knockoutjs自定义绑定样式子项,knockout.js,ko-custom-binding,Knockout.js,Ko Custom Binding,我有定制的装订 <div data-bind="autocomplete : { inputStyle : { marginRight : marginR }}"></div> 在init函数中,我这样做。我添加了一个需要设置样式的输入框 $element.append("<input type='text' data-bind='style='" + value.inputStyle + "' />"); $element.append(我真的不明白

我有定制的装订

<div data-bind="autocomplete : { inputStyle : { marginRight : marginR }}"></div>

在init函数中,我这样做。我添加了一个需要设置样式的输入框

$element.append("<input type='text' data-bind='style='" + value.inputStyle + "' />");

$element.append(我真的不明白你想做什么。但是有一些评论:

$element.append("<input type='text' data-bind='style='" + value.inputStyle + "' />

$element.append(“以下是自定义绑定,按照您的要求执行:

function toStyleStr (obj) {
    var result = "";
    $.each(obj, function (k,v) {
        result += k.toString() + ": " + ko.utils.unwrapObservable(v).toString() + ";"; 
    });    
    return result;               
}

ko.bindingHandlers.autocomplete = {
    init: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor()),
            $element = $(element);
        $element.append("<input type='text' style='" + toStyleStr(value.inputStyle) + "' />");     
    }            
};

var model = {
    marginR: ko.observable("10px")
};
ko.applyBindings(model);
函数toStyleStr(obj){
var结果=”;
$。每个(对象、功能(k、v){
结果+=k.toString()+”:“+ko.utils.unwrapobbservable(v.toString()+”;”;
});    
返回结果;
}
ko.bindingHandlers.autocomplete={
init:函数(元素、值访问器){
var value=ko.utils.unwrapobbservable(valueAccessor()),
$element=$(element);
$element.append(“”);
}            
};
var模型={
保证金:可观测(“10px”)
};
ko.应用绑定(模型);

这是一个有用的工具:

是的,正如我所说,我知道我的代码不起作用。但我想做的是将孔样式绑定转移到我的输入中。因此我不必指定任何颜色左右。
$element.append("<input type='text' data-bind='style:{color:"+value.inputStyle.marginRight +"}'/>");
$element.append("<input type='text' style='color:"+value.inputStyle.marginRight +"'/>")
function toStyleStr (obj) {
    var result = "";
    $.each(obj, function (k,v) {
        result += k.toString() + ": " + ko.utils.unwrapObservable(v).toString() + ";"; 
    });    
    return result;               
}

ko.bindingHandlers.autocomplete = {
    init: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor()),
            $element = $(element);
        $element.append("<input type='text' style='" + toStyleStr(value.inputStyle) + "' />");     
    }            
};

var model = {
    marginR: ko.observable("10px")
};
ko.applyBindings(model);